4.3.3.2 通知を含めたワークフローの定義例
ワークフローの任意のタイミングで通知を行う場合の定義例を示します。
通知の"type"が"onDemand"の場合、ワークフローで指定した任意のタイミングで通知を行えます。
通知の内容に、ワークフローのフィールドの値や、WorkflowのYAMLファイルで設定したパラメータを以下により埋め込むことができます。
- .GetValueを使用
使用できる値は「(表)Notificationで使用可能なオブジェクト・フィールド」を参照してください。 - Ops I提供部品「oi.notify」を使用
WorkflowのYAMLファイルで定義したパラメータを埋め込めます。メッセージ内容や宛先をワークフロー定義で動的に変更することができます。
WorkflowのYAMLファイルおよびNotificationのYAMLファイルの定義例を以下に示します。
WorkflowのYAML定義については「Workflow」を、Ops I提供部品「oi.notify」については「(表)actionのリスト(Ops I提供部品)」を参照してください。
NotificationとNotifierのYAML定義の詳細については「Notification、Notifier」を参照してください。
注意事項
WorkflowのYAMLファイルで定義したnotificationの値は、NotificationのYAMLファイルで定義したnameの値と一致する必要があります。また、Ops I提供部品「oi.notify」を使用する場合はNotificationのYAMLファイルに以下のように設定してください。
- event.resourceは"workflow"に指定する。
- event.typeは"onDemand"に指定する。
- conditionsは指定しない。
- WorkflowのYAMLファイルで定義した「oi.notify」のパラメータをNotificationのYAMLファイルに埋め込む場合、次のように指定する。
{{ .OINotify.params.key }}
【ユースケース:メッセージのタイトルおよび内容の一部をWorkflowのYAMLファイルに定義する】
再申請の通知内容を、WorkflowのYAMLファイルに定義し、その内容に基づいたNotificationのYAMLファイルを作成します。
<WorkflowのYAMLのtasks定義例>
notify_vm_wf_02:
action: oi.notify
input:
notification: lend_request_notification
params:
type: 再申請
document: 申し送り事項
next:
- when: <% succeeded() %>
do: next_step
- when: <% failed() %>
do: fail
<NotificationのYAMLの定義例>
apiVersion: 1.0
kind: notification
## Meta data
type: resource
name: lend_request_notification
label: 貸出申請通知
description: 担当者に貸出申請通知を行うYAML定義です
## Notification contents
event:
resource: workflow
type: onDemand
notifications:
- message:
title: VM貸出の{{ .OINotify.params.type }}通知
body: |
VM貸出の{{ .OINotify.params.type }}通知が到着しています。{{ .OINotify.params.document }}を確認の上、対応お願いします。
申請日時:{{ .GetValue ".Context.createdOn" }}
申請者:{{ .GetValue ".Context.createdBy" }}
referTo: https://{{ .System.domain }}/sys_request/workflow_list/workflow_detail/{{ .GetValue ".Context.id" }}
severity: Information
destinations:
- type: user
value: '{{ .GetValue ".Context.create_vm_wf_02.assignedTo" }}'