アクションで実行したAPIレスポンスを別のステップで使用する方法について

完了

コメント

4件のコメント

  • 正式なコメント
    Kompiraサポートチーム

    ご質問いただきありがとうございます。
    以下の通り回答いたします。

    ご状況拝見したところ、正規表現で取り出そうとしているものが文字列ではないため、エラーとなっている可能性がございます。
    詳細を確認させていただきたいため、アクションで情報を取得したステップの出力値を送付いただけますでしょうか。
    こちらのコメント欄に貼り付けいただくか、内容が差し支えあるようでしたら営業経由でお送りいただけますと幸いです。

    入力値については、全てがアクションで送信されるものではなく、該当のステップにおいて受け取った情報が記載されたものとなります。

    以上、よろしくお願いいたします。

    コメントアクション パーマリンク
  • kt

    ご回答ありがとうございます。

     

    まず、POSTリクエストを送信するアクションの実行結果(アクション実行履歴)は以下です。

    {
    "actionId": "<アクションID>",
    "status": "succeeded",
    "response": {
      "statusCode": 200,
      "headers": {
      "Access-Control-Allow-Credentials": "true",
      "Access-Control-Allow-Headers": "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization",
        "Access-Control-Allow-Methods": "GET, PUT, POST, DELETE, PATCH, OPTIONS",
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Max-Age": "1728000",
        "Content-Length": "1031",
        "Content-Type": "application/json",
        "Date": "Tue, 20 Jun 2023 05:13:58 GMT",
        "Request-Id": "xxx",
        "Strict-Transport-Security": "max-age=15724800; includeSubDomains",
        "X-Azure-Ref": "xxx",
        "X-Cache": "CONFIG_NOCACHE",
        "X-Powered-By": "Express"
      },
      "body": "<トークン>"
    },
    "retryCount": 0,
    "maxRetry": 3,
    "requestedAt": "2023-06-20T05:13:58.687174966Z",
    "startedAt": "2023-06-20T05:13:59.070880084Z",
    "updatedAt": "2023-06-20T05:13:59.797795978Z"
    }

    今回はこのレスポンス内「body」の値<トークン>部分のみ、次のアクションで使用したいので、

    次のステップで

    「steps.<ステップID>.output.body」をJSONパースしてフィールド「response」に保存する

    と指定しています。

    そちらの実行結果は以下です。
    {
      "message": {
        "receiveSlotId": "xxx",
        "receiveSlotKind": "email",
        "content": {
          "subject": "",
          "text": "xxx",
          "html": "xxx"
        },
        "metadata": {
          "deliveredTo": "xxx",
          "from": {
            "name": "xxx",
            "email": "xxx"
          },
          "to": [
            {
              "email": "xxx"
            }
          ],
          "date": "2023-06-20T14:13:45+09:00",
          "headers": {
            "Content-Type": "multipart/alternative; boundary=\"000000000000c67e6505fe88b784\"",
            "Date": "Tue, 20 Jun 2023 14:13:45 +0900",
            "Dkim-Signature": "xxx",
            "From": "xxx",
            "Message-Id": "xxx",
            "Mime-Version": "1.0",
            "Received": [
                      "xxx"
              ],
            "Subject": "",
            "To": "xxx",
            "X-Gm-Message-State": "xxx",
            "X-Google-Dkim-Signature": "xxx",
            "X-Google-Smtp-Source": "xxx",
            "X-Received": "xxx"
          }
        },
        "receivedAt": "2023-06-20T05:13:57.006828111Z"
      },
      "relatedMessageCount": 0,
      "space": {
        "spaceId": "xxx",
        "displayName": "xxx",
        "domain": "xxx",
        "createdAt": "xxx",
        "createdBy": "xxx",
        "updatedAt": "xxx",
        "updatedBy": "xxx"
      },
      "scope": {
        "scopeId": "xxx"
        "displayName": "xxx",
        "remarks": "",
        "severity": 42,
        "thresholds": {
          "warning": 1,
          "incident": 2
        },
        "status": "incident",
        "muted": false,
        "createdAt": "2023-06-06T00:58:33.9062Z",
        "createdBy": "xxx",
        "updatedAt": "2023-06-06T00:58:33.9062Z",
        "updatedBy": "xxx"
      },
      "scopeSeverities": {
        "hostname": 42,
        "status": 0
      },
      "event": {
        "eventId": "xxx",
        "severity": 42,
        "previousSeverity": 41,
        "scopeId": "xxx",
        "severityName": "xxx",
        "method": "increase",
        "value": 1,
        "messageId": "xxx",
        "createdAt": "2023-06-20T05:13:57.674082Z",
        "createdBy": "xxx"
      },
      "trigger": {
        "triggerId": "xxx"
      },
      "steps": {
          "xxx": {
          "output": {
            "statusCode": 200,
            "headers": {
              "Access-Control-Allow-Credentials": "true",
              "Access-Control-Allow-Headers": "DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization",
              "Access-Control-Allow-Methods": "GET, PUT, POST, DELETE, PATCH, OPTIONS",
              "Access-Control-Allow-Origin": "*",
              "Access-Control-Max-Age": "1728000",
              "Content-Length": "1031",
              "Content-Type": "application/json",
              "Date": "Tue, 20 Jun 2023 05:13:58 GMT",
              "Request-Id": "xxx",
              "Strict-Transport-Security": "max-age=15724800; includeSubDomains",
              "X-Azure-Ref": "xxx",
              "X-Cache": "CONFIG_NOCACHE",
              "X-Powered-By": "Express"
            },
            "isBodyEncoded": false,
            "body": "xxx"
          }
        }
      },
      "response"(作成したフィールド): {
        "token": "<取得したい値>",
        "xxx": {
          "xxx": "xxx",
          "xxx": "xxx",
          "xxx": "xxx"
        }
      }
    }
    この次のステップでは、「response.token」の値のみをHTTPヘッダに含めたリクエスト送信を行いたいです。
     
    ご確認お願いいたします。
    0
    コメントアクション パーマリンク
  • Kompiraサポートチーム

    早速のご返信および出力値をご提示いただきありがとうございます。

    ステップでの値の指定について説明いたします。
    まず、今回はすでに JSON 形式でリクエストボディを受け取っている状態のため、JSON パースや正規表現による値の取得は不要と思われます。
    そのため、ほかのステップやアクションの中で今回対象としている値を指定する場合は、以下の通り指定します。

    steps.<トークンを取得するアクションのステップ ID>.output.body.token

    ただ、恐れ入りますが webhook アクションにおいて任意の値を埋め込めるのは webhook URL とリクエスト本文のみとなっております。(https://fixpoint.github.io/alerthub-manual/notification-content.html)
    HTTP ヘッダには埋め込むことができませんので、ご了承のほどお願いいたします。

    上記を踏まえ、HTTP ヘッダへトークンを含める方法は二点考えられます。

    1. AlertHub の API で HTTP ヘッダを含めてアクションの設定を編集し、さらにアクションステップを加え設定したアクションを実行する
    2. 最後に呼びたい API の認証方法を HTTP ヘッダにトークンを入れる方法から変更いただく
      ※こちらについては実現の可能性は低いかと思われますが、念のためお伝えさせていただきます

    直接ご要望にお応えできず申し訳ありませんが、よろしくお願いいたします。

    0
    コメントアクション パーマリンク
  • kt

    ご回答いただきありがとうございます。

    内容承知しました。クローズでお願いいたします。

    0
    コメントアクション パーマリンク

サインインしてコメントを残してください。