UI에서 공지채널을 관리하는 것 외에도 NerdGraph API 사용할 수 있습니다.
중요
이 문서는 목적지와 알림 메시지를 사용하여 새로운 알림 플랫폼에 Nerdgraph API를 사용하는 것을 참조합니다.알림 메시지는 기존 알림 채널과 다른 채널이라고도 합니다.
채널 나열 및 필터링
channels
쿼리를 사용하면 계정당 모든 채널에서 페이지를 매길 수 있습니다.또한 일부 필터링 기능을 허용합니다.
다음은 예입니다.
account(id: YOUR_ACCOUNT_ID) {
채널을 통해 페이지를 나누려면 초기 쿼리에서 nextCursor
필드를 요청해야 합니다.
커서 페이지 매김을 사용하면 응답에서 반환된 nextCursor
이 다시 비어 있을 때까지 결과 집합을 통해 계속 요청합니다. 이것은 결과의 끝에 도달했음을 의미합니다.
다음은 예입니다.
account(id: YOUR_ACCOUNT_ID) {
위의 코드는 다음과 같은 결과 집합을 반환합니다.
"nextCursor": "/8o0y2qiR54m6thkdgHgwg==:jZTXDFKbTkhKwvMx+CtsPVM=",
"id": "01c0cbe7-3d70-47c1-99e0-adf906eed6c2",
"id": "05db0207-c137-4985-8cb5-f21e7e57b8cc",
"name": "Another Channel Name"
따라서 후속 요청에서 커서가 비어 있을 때까지 다음과 같이 커서를 제공합니다.
account(id: YOUR_ACCOUNT_ID) {
channels(cursor: "/8o0y2qiR54m6thkdgHgwg==:jZTXDFKbTkhKwvMx+CtsPVM=") {
API는 이름으로 채널 쿼리를 허용합니다.name
필터는 정확히 일치 및 부분 일치를 반환합니다.대소문자를 구분하지 않습니다.이렇게 하면 제공된 이름과 일치하는 채널에 대한 정보만 반환됩니다.
이 예에서는 이름에 "DevOps"
있는 채널을 찾으려고 합니다.
account(id: YOUR_ACCOUNT_ID) {
channels(filters: { name: "DevOps" }) {
API를 사용하면 채널 ID로 쿼리할 수 있습니다.
account(id: YOUR_ACCOUNT_ID) {
channels(filters: { id: YOUR_CHANNEL_ID }) {
API를 사용하면 대상 ID별로 채널을 쿼리할 수 있습니다.
account(id: YOUR_ACCOUNT_ID) {
channels(filters: { destinationId: YOUR_DESTINATION_ID }) {
API를 사용하면 채널 유형별로 쿼리할 수 있습니다.다음 쿼리는 선택한 계정의 모든 이메일 채널을 반환합니다.
account(id: YOUR_ACCOUNT_ID) {
channels(filters: { type: EMAIL }) {
채널 만들기
채널을 생성하려면 각 채널 유형에 대해 다른 입력을 제공해야 합니다.각 채널은 대상에 연결됩니다.목적지에 대한 정보는 목적지에 대한 NerdGraph 튜토리얼을 참조하십시오.
가장 좋은 방법은 channelSchema
엔드포인트를 사용하여 다음과 같이 properties
에서 보내야 하는 필드를 확인하는 것입니다.
account(id: YOUR_ACCOUNT_ID) {
channelType: CHANNEL_TYPE
destinationId: YOUR_DESTINATION_ID
Jira는 구성 가능한 티켓팅 시스템이므로 이 채널을 만드는 고정된 방법은 없습니다.
두 개의 정적 필드( project
및 issuetype
가 있습니다.
다음과 같이 project
제안을 가져오고 값 중 하나를 issuetype
에 대한 제약 조건으로 사용합니다.
account(id: YOUR_ACCOUNT_ID) {
channelType: JIRA_CLASSIC
destinationId: YOUR_DESTINATION_ID
constraints: [{ key: "project", value: YOUR_PROJECT_VALUE }]
선택한 값은 스키마를 가져오기 위한 제약 조건으로 사용됩니다.
account(id: YOUR_ACCOUNT_ID) {
channelType: JIRA_CLASSIC
destinationId: YOUR_DESTINATION_ID
{ key: "project", value: YOUR_PROJECT_VALUE }
{ key: "issuetype", value: YOUR_ISSUE_TYPE_VALUE }
각 필드를 가져오고 제안에서 값을 선택하거나 자유 텍스트로 선택한 후 채널을 만들 수 있습니다.
aiNotificationsCreateChannel(accountId: YOUR_ACCOUNT_ID, channel: {
destinationId: YOUR_DESTINATION_ID,
// ... And so forth with the rest of the fields
ServiceNow는 구성 가능한 티켓팅 시스템이므로 이 채널을 만드는 고정된 방법은 없습니다.
스키마는 위에 표시된 것처럼 가져와야 하며 각 필드는 자유 텍스트로 채워지거나 제안을 사용하여 채워져야 합니다.
account(id: YOUR_ACCOUNT_ID) {
destinationId: YOUR_DESTINATION_ID
각 필드를 가져오고 제안에서 값을 선택하거나 자유 텍스트로 선택한 후 채널을 만들 수 있습니다.
aiNotificationsCreateChannel(accountId: YOUR_ACCOUNT_ID, channel: {
destinationId: YOUR_DESTINATION_ID,
// ... And so forth with the rest of the fields
aiNotificationsCreateChannel(
accountId: YOUR_ACCOUNT_ID
destinationId: YOUR_DESTINATION_ID
properties: [{ key: "channelId", value: YOUR_SLACK_CHANNEL_ID }]
payload
속성은 알림에서 보낼 페이로드입니다.핸들바 구문을 사용하여 요청에서 정보를 동적으로 삽입합니다.
aiNotificationsCreateChannel(
accountId: YOUR_ACCOUNT_ID
destinationId: YOUR_DESTINATION_ID
properties: [{ key: "payload", value: "{\"key\":\"value\"}" }]
aiNotificationsCreateChannel(
accountId: YOUR_ACCOUNT_ID
destinationId: YOUR_DESTINATION_ID
eventSource
은 기존 이벤트 소스의 전체 URL이어야 합니다.eventContent
은 다음과 같이 알림 본문에서 전송될 페이로드입니다.
aiNotificationsCreateChannel(accountId: YOUR_ACCOUNT_ID, channel: {
destinationId: YOUR_DESTINATION_ID,
value: YOUR_AWS_EVENT_SOURCE
value: YOUR_EVENT_CONTENT/var>
PagerDuty에는 서비스 수준과 계정 수준의 두 가지 통합 유형이 있습니다.자세한 내용은 PagerDuty 통합 문서 를 참조하십시오.
서비스 수준:
aiNotificationsCreateChannel(
accountId: YOUR_ACCOUNT_ID
type: PAGERDUTY_SERVICE_INTEGRATION
destinationId: YOUR_DESTINATION_ID
properties: [{ key: "summary", value: YOUR_PAGE_SUMMARY }]
계정 수준:
aiNotificationsCreateChannel(
accountId: YOUR_ACCOUNT_ID
type: PAGERDUTY_ACCOUNT_INTEGRATION
destinationId: YOUR_DESTINATION_ID
{ key: "summary", value: YOUR_PAGE_SUMMARY }
{ key: "email", value: EMAIL_OF_PD_USER }
{ key: "service", value: YOUR_PD_SERVICE_ID }
채널 업데이트
채널을 업데이트할 때 채널의 모든 속성을 제공할 필요는 없습니다.예를 들어 이름만 업데이트하려는 경우 다음과 같이 업데이트해야 하는 유일한 속성입니다.
aiNotificationsUpdateChannel(
accountId: YOUR_ACCOUNT_ID
channelId: YOUR_CHANNEL_ID
channel: { name: "Updated channel Name" }
채널 테스트
NerdGraph API를 통해 채널을 테스트할 수 있습니다.이는 채널을 생성하기 전이나 후에 수행할 수 있습니다.
aiNotificationsTestChannel(
accountId: YOUR_ACCOUNT_ID
type: PAGERDUTY_SERVICE_INTEGRATION
properties: [{ key: "summary", value: YOUR_PAGE_SUMMARY }]
aiNotificationsTestChannelById(
accountId: YOUR_ACCOUNT_ID
channelId: YOUR_CHANNEL_ID
채널 삭제
NerdGraph API를 통해 채널을 삭제할 수 있습니다.
aiNotificationsDeleteChannel(
accountId: YOUR_ACCOUNT_ID
channelId: YOUR_CHANNEL_ID