Event Notifications 템플릿 만들기
IBM Cloud Event Notifications 템플릿은 알림(이메일, 웹훅, Slack 등)의 레이아웃과 내용을 정의합니다. 템플릿에는 이미지, 정적 텍스트, 이벤트에 기반한 동적 콘텐츠(변수, 조건부 논리)를 포함할 수 있습니다.
Event Notifications 는 두 가지 유형의 템플릿을 지원합니다:
-
사용자 정의 템플릿: 나만의 템플릿을 디자인하여 알림 메시지를 구성할 수 있습니다.
-
사전 정의된 템플릿: 특정 소스 및 대상 쌍에 대해 정의된 표준 템플릿입니다. 미리 정의된 템플릿을 사용자 정의하여 사용자 정의 템플릿을 만들 수 있습니다.
사용자 정의 템플릿 만들기
-
IBM Cloud 콘솔에서 메뉴 아이콘
> 플랫폼 자동화 > 이벤트 알림을 클릭합니다.
-
Event Notifications 인스턴스의 이름을 클릭하세요.
-
왼쪽 패널에서 템플릿을 선택하고 만들기를 클릭합니다.
-
이름, 설명 등 템플릿에 대한 세부 사항을 입력하고 템플릿 유형을 선택합니다. Event Notifications 는 현재 다음과 같은 사용자 정의 템플릿을 지원합니다:
-
‘추가’를 클릭하여 변경 사항을 저장하세요.
핸들바 통합
핸들바는 템플릿 내에서 동적 콘텐츠를 생성할 수 있는 템플릿 언어입니다. Handlebars를 사용하면 템플릿 변수, 조건부 로직 및 다양한 헬퍼를 활용하여 알림 메시지를 맞춤 설정할 수 있습니다.
템플리트 변수
템플릿 변수는 알림 메시지 템플릿 내의 자리 표시자로서, 알림이 발동될 때 실제 데이터로 대체됩니다. 이러한 변수를 사용하면 메시지를 맞춤 설정하고, 알림 대상인 이벤트와 관련된 정보를 포함할 수 있습니다.
사용량
{{variable_name}}
예:
Event Name: {{event_name}}
조건부 논리 헬퍼
조건부 논리를 사용하면 메시지 템플릿 내에서 조건을 정의할 수 있으며, 이를 통해 변수의 값에 따라 동적으로 콘텐츠를 생성할 수 있습니다. 이 기능은 다양한 상황에 맞게 유연하게 알림 메시지를 작성할 때 유용합니다.
사용량
{{#if condition}}
{{else}}
{{/if}}
예:
{{#if severity}}
Severity: {{severity}}
{{else}}
No severity information available
{{/if}}
헬퍼 포함
'contains' 헬퍼를 사용하면 페이로드의 필드 중 어느 곳에든 특정 단어가 포함되어 있는지 확인할 수 있습니다.
예
"data":
{
"message": "this is test alert from dev account"
}
다음과 같은 포함 도우미를 사용합니다:
{
{{#contains data.message "dev"}}
"environment": "development"
{{/contains}}
}
사용 가능한 헬퍼의 전체 목록을 보려면 raymond 내장 헬퍼 참조 문서를 참조하십시오.
예제
페이로드:
"data":
{
"message": "this is test alert from dev account",
"secrets": [
{
"event_time": "2025-01-24T00:45:01Z",
"event_triggered_by": "SecretsManager",
"secret_expiration": "2025-04-24T00:45:01Z"
}
],
}
contains 헬퍼와 조건부 논리 헬퍼 함께 사용하기
{{#if (contains data.message "dev")}}
"color":"#1E90FF"
{{else if (contains ibmendefaultlong "prod")}}
"color":"#dc143c"
{{else}}
"color":"#097969"
{{/if}}
맵 배열의 각 키 값을 출력하는 for 루프
{
{{#each data.secrets}}
{
"type": "TextBlock",
"text": "{{@key}}: {{this}}",
"wrap": true
},
{{/each}}
}
맵 배열에서 특정 값을 출력하는 for 루프
{{#each data.secrets}}
{
"secret_expiration": "{{secret_expiration}}",
"event_time": "{{event_time}}"
}
{{/each}}
키에 특수 문자가 포함된 페이로드에서 값을 가져오는 경우
페이로드:
"toolchain.tool-instance":{
"name":"sample-date"
}
액세스 이름:
{{[toolchain.tool-instance].name}}
키가 " toolchain.tool-instance "인 JSON 페이로드에서 name 값에 액세스하려면 키에 특수 문자가 포함되어 있고 점 표기법으로 직접 액세스할 수 없으므로 {{toolchain[.tool-instance].name}} 구문이 사용됩니다.