すべてのプロダクト
Search
ドキュメントセンター

CloudFlow:Simple Message Queue (formerly MNS) トピックの統合

最終更新日:Jan 12, 2025

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」をご参照ください。