Event Notifications 템플릿 만들기

IBM Cloud Event Notifications 템플릿은 알림(이메일, 웹훅, Slack 등)의 레이아웃과 내용을 정의합니다. 템플릿에는 이미지, 정적 텍스트, 이벤트에 기반한 동적 콘텐츠(변수, 조건부 논리)를 포함할 수 있습니다.

Event Notifications 는 두 가지 유형의 템플릿을 지원합니다:

  1. 사용자 정의 템플릿: 나만의 템플릿을 디자인하여 알림 메시지를 구성할 수 있습니다.

  2. 사전 정의된 템플릿: 특정 소스 및 대상 쌍에 대해 정의된 표준 템플릿입니다. 미리 정의된 템플릿을 사용자 정의하여 사용자 정의 템플릿을 만들 수 있습니다.

사용자 정의 템플릿 만들기

  1. IBM Cloud 콘솔에서 메뉴 아이콘 햄버거 아이콘 > 플랫폼 자동화 > 이벤트 알림을 클릭합니다.

  2. Event Notifications 인스턴스의 이름을 클릭하세요.

  3. 왼쪽 패널에서 템플릿을 선택하고 만들기를 클릭합니다.

  4. 이름, 설명 등 템플릿에 대한 세부 사항을 입력하고 템플릿 유형을 선택합니다. Event Notifications 는 현재 다음과 같은 사용자 정의 템플릿을 지원합니다:

  5. ‘추가’를 클릭하여 변경 사항을 저장하세요.

핸들바 통합

핸들바는 템플릿 내에서 동적 콘텐츠를 생성할 수 있는 템플릿 언어입니다. 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}} 구문이 사용됩니다.