Serverless Workflow は、タスクステップで Simple Message Queue (formerly MNS) (SMQ) トピックと統合して、SMQ トピックにメッセージをパブリッシュできます。 SMQ トピックからキュー、HTTP エンドポイント、およびメールアドレスにメッセージをプッシュできます。 これを行うには、PublishMessage オペレーションを呼び出します。 このトピックでは、SMQ トピックの統合に使用されるモードとパラメーターについて説明します。
統合モード
このセクションでは、SMQ トピックの統合に使用されるモード(リクエストレスポンスモードとコールバック待機モード)について説明します。 これらのモードのいずれかを使用して、SMQ トピックをオーケストレーションできます。
リクエストレスポンスモード
このモードでは、PublishMessage リクエストが送信された後、Serverless Workflow はタスクステップに進みます。 次のコードはフローを定義しています。
version: v1 type: flow steps: - type: task name: mns-topic-task resourceArn: acs:mns:::/topics/{topicName}/messages # {topicName} という名前の SMQ トピックリソースを呼び出します。 pattern: requestResponse # リクエストレスポンスモード。これはデフォルトモードです。 pattern パラメーターはオプションです。 outputMappings: # PublishMessage オペレーションのレスポンスパラメーター - target: messageID # メッセージID。 source: $local.MessageId - target: requestID # リクエストID。 source: $local.RequestId - target: messageBodyMD5 # メッセージ本文の MD5 ハッシュ。 source: $local.MessageBodyMD5 serviceParams: # PublishMessage オペレーションのリクエストパラメーター MessageBody: $.messageBody # メッセージ本文。 MessageTag: $.messageTag # (オプション)メッセージのタグ。 MessageTag パラメーターはオプションです。 MessageAttributes: $.messageAttributes # メッセージの追加属性。 これらの属性は JSON 形式である必要があります。 MessageAttributes パラメーターはオプションです。
コールバック待機モード
このモードでは、PublishMessage リクエストが送信された後、Serverless Workflow はコールバック通知を受信するまでタスクステップを中断します。 次のコードはフローを定義しています。
version: v1 type: flow steps: - type: task name: mns-topic-task resourceArn: acs:mns:::/topics/{topicName}/messages # {topicName} という名前の SMQ トピックリソースを呼び出します。 pattern: waitForCallback # コールバック待機モード。 inputMappings: - target: messageBody source: $input.messageBody - target: messageTag source: $.messageTag - target: messageAttributes source: $.messageAttributes - target: taskToken # タスクステータスをコールバックするために使用されるトークン。 このトークンは自動的に生成されます。 source: $context.task.token serviceParams: # PublishMessage オペレーションのリクエストパラメーター MessageBody: $ # メッセージ本文。 タスクトークン(TaskToken)はメッセージ本文にカプセル化されています。 MessageTag: $.messageTag# メッセージのタグ。 MessageTag パラメーターはオプションです。 MessageAttributes:$.messageAttributes # メッセージの追加属性。 MessageAttributes パラメーターはオプションです。
パラメーター
context
TaskToken
このパラメーターは、タスクステップのタスクトークンを指定します。 コールバック待機モードでは、タスクステップはタスクステータスをコールバックするために使用される タスクトークン を自動的に生成します。 ReportTaskSucceeded および ReportTaskFailed オペレーションを呼び出して、$context.task.token レスポンスパラメーターから TaskToken 値をクエリできます。 次に、TaskToken 値を使用して、コールバックタスクのステータスをクエリします。
serviceParams
MessageBody: 送信するメッセージ本文の文字列。
MessageTag: 送信するメッセージのタグ。 このパラメーターはオプションです。
MessageAttributes: メッセージの追加属性。 このパラメーターはオプションです。 特定のメッセージをプッシュする場合、このパラメーターを指定する必要があります。 このパラメーターの値は JSON 文字列である必要があります。
メールプッシュ: メッセージをメールでプッシュする場合は、MailAttributes パラメーターを指定する必要があります。 サンプルコード:
{ "MailAttributes": { "Subject":"{メールの件名}", "AccountName":"{送信者アドレス(メールアドレス)}", "AddressType":0, "IsHTML":true, "ReplyToAddress":0 } }
上記のパラメーターの詳細については、「PublishMessage」をご参照ください。