汎用アクションは、ツールやインテグレーションに関連付けられていないワークフローアクションです。必要なアクションがアクションカタログにない場合、汎用アクションでユースケースに対応できる可能性があります。

すべてのワークフローアクションと同様に、コンテキスト変数タブを使用して、 ワークフローコンテキストで利用可能な値にアクセスすることができます。

また、新しいアクションやインテグレーション全体をリクエストすることもできます。

HTTP

HTTP アクションを使用すると、カスタムエンドポイントにリクエストを行うことができます。リクエストメソッドとその内容、認証と処理の方法、有効期限切れの証明書やリダイレクトなどのシナリオに対応する方法を制御することができます。HTTP アクションが期待通りに動作するように、許可リストに Datadog の IP アドレス範囲を追加する必要がある場合、webhooks オブジェクトにリストされた IP を使用します。詳細は IP 範囲ページを参照してください。

リクエスト方法と必要な認証を指定することから始めます。利用可能な構成タブの詳細については、以下のセクションをお読みください。オプションとして、リクエストは Conditional wait セクションで指定した条件で待機し、条件が満たされない場合は所定の間隔で再試行することができます。

認証

リクエストの認証が必要な場合は、アクションの Connection を使って認証方法を構成します。ドロップダウンから事前構成された接続を選択するか、接続を作成することができます。

AWS 接続の作成

  1. Connection セクションで、プラスアイコン (+) をクリックします。
  2. AWS を選択します。
  3. Connection NameAccount IDAWS Role Name を入力します。
  4. Create をクリックします。

Azure 接続の作成

  1. Connection セクションで、プラスアイコン (+) をクリックします。
  2. Azure を選択します。
  3. Connection NameTenant IDClient IDClient Secret を入力します。
  4. オプションで、OAuth 2 アクセストークンの取得中に Microsoft にリクエストされる Custom Scope を入力します。リソースのスコープは、リソースの識別子 URI と .default をスラッシュ (/) で区切って構築されます (例: {identifierURI}/.default)。詳細については、.default スコープに関する Microsoft のドキュメントを参照してください。
  5. Create をクリックします。

HTTP Basic 認証接続の作成

Basic Auth 接続は、ユーザー名とパスワードを含む認証ヘッダーを使用して HTTP リクエストを認証します。

  1. Connection セクションで、プラスアイコン (+) をクリックします。
  2. HTTP を選択します。
  3. Connection Name を入力します。
  4. Authentication Type ドロップダウンから、Basic Auth を選択します。
  5. UsernamePassword を入力します。
  6. 認証用の Base URL を入力します。ユーザー名とパスワードを使用して必要な認証リクエストヘッダーが自動的に設定されますが、必要であれば、その他の Request Headers を追加することができます。
  7. オプションで、URL parametersBody をリクエストに追加します。
  8. Create をクリックします。

HTTP Token Auth 接続の作成

Token Auth 接続は、ベアラートークンを使用して HTTP リクエストを認証します。

  1. Connection セクションで、プラスアイコン (+) をクリックします。
  2. HTTP を選択します。
  3. Connection Name を入力します。
  4. Authentication Type ドロップダウンから、Token Auth を選択します。
  5. Token NameToken Value を入力します。複数のトークンを入力することができます。ヘッダー、パラメーター、またはリクエスト本文内のトークンを参照するには、構文 {{ secretTokenName }} を使用します。
  6. 認証用の Base URL を入力します。
  7. オプションで、その他の Request HeadersURL parametersBody をリクエストに追加します。
  8. Create をクリックします。

HTTP リクエスト認証接続の作成

HTTP リクエスト認証接続では、HTTP リクエストの認証に使うアクセストークンを取得するための事前リクエストを行うことができます。

  1. Connection セクションで、プラスアイコン (+) をクリックします。
  2. HTTP を選択します。
  3. Connection Name を入力します。
  4. Authentication Type ドロップダウンから、HTTP Request Auth を選択します。

アクセストークンの事前リクエストを構成します。

  1. Access token request セクションの Secret Type で、Token NameToken Value を入力します。複数のトークンを入力することができます。
  2. Request SetupVariable Reference Path を入力します。これは、認証呼び出し後にアクセストークンが返されるパスです。たとえば、アクセストークンがアクセスリクエストの本文として返される場合は、bodyを使用します。アクセストークンが応答のbodytokenというプロパティとして返される場合は、body.tokenを使用します。パスは大文字と小文字を区別します。
  3. オプションで、Refresh Interval を入力します。これはアクセストークンの有効期限が切れるまでの時間で、秒単位で指定します。トークンの有効期限が切れると、接続は自動的に新しいアクセストークンをリクエストします。間隔を 0 に設定すると、トークンのリフレッシュが無効になります。
  4. Request URL を入力し、リクエストの種類を GET または POST で指定します。
  5. オプションで、その他の Request HeadersURL parametersBody をリクエストに追加します。

認証リクエストの構成

  1. Request details セクションで、認証リクエストの Base URL を入力します。ヘッダー、パラメーター、リクエスト本文内のトークンを参照するには、 {{ accessToken }} を使用します。例: Authentication: Bearer {{ accessToken }}
  2. オプションで、その他の Request HeadersURL parametersBody をリクエストに追加します。
  3. Create をクリックします。

HTTP mTLS 接続の作成

相互 TLS (mTLS) 認証接続では、秘密鍵と TLS 証明書を使って HTTP リクエストを認証することができます。

クライアント証明書 (.crt.pem) と秘密鍵 (.key, .pem) は、PEM形式を使用する必要があります。
  1. Connection セクションで、プラスアイコン (+) をクリックします。
  2. HTTP を選択します。
  3. Connection Name を入力します。
  4. Authentication Type ドロップダウンから、mTLS Auth を選択します。
  5. Upload File をクリックして、秘密鍵をアップロードします。
  6. Upload File をクリックして、証明書をアップロードします。
  7. Create をクリックします。

入力

URL とリクエストメソッドはリクエストにおいて必須です。オプションで以下を入力することができます。

  • URL パラメーター
  • ヘッダー
  • コンテンツタイプ
  • リクエスト本文
  • クッキー

また、有効期限切れの証明書を許可するか、リダイレクトに従うかを選択することもできます。

応答オプション

Error on Status でエラーを返す任意のステータスコードをコンマで区切って入力します。Response Parsing ドロップダウンを使って、ヘッダーから推測されるデフォルトのレスポンスパース方法をオーバーライドし、ターゲットサーバーがレスポンスヘッダーに間違ったエンコーディングを指定している場合は Response Encoding を使用します。

データ変換

Expression および Function アクションは、JavaScript を使用してワークフロー内でカスタムデータ変換を実行します。ワークフロー内で利用可能なコンテキスト変数の値を、JavaScript の式や関数の入力として使用するには、$.Steps.<step_name>.<variable> という構文を使用します。また、同じ構文でデータ変換アクションに Lodash を利用するために _ を使用することができます。例えば、HTTP リクエストステップ (Make_request) から HTTP リクエストステータス変数 (status) を参照するには、以下のコンテキスト変数を使用します。

$.Steps.Make_request.status

また、前のステップの Array_function が返す配列に _.includes Lodash 関数を適用して、名前 Bits が含まれているかどうかを判断するには、次の構文を用います。

_.includes($.Steps.Array_function.data, "Bits")

これらのアクションによって返されたデータは、その後のワークフローのステップで参照することができます。

式アクションは、1 行のコードで完了でき、変数の割り当てや複数の独立した操作を必要としないデータ変換に使用します。例:

[1, 2, 3].filter(x => x < 3)

関数

関数アクションは、変数の割り当てや複数の式を必要とするデータ変換を可能にします。

式と関数のテスト

式または関数アクションをテストするには、Inputs セクションの Test をクリックします。そのアクションで前のステップからの出力変数が使用される場合は、コード内でその変数をコメントアウトして、テストデータと置き換えます。例えば、ワークフロー名と前のステップからの出力 Steps.List_monitors に変数を割り当てる以下のアクションを考えます。

let name = $.WorkflowName;
let object = $.Steps.List_monitors;

...

このアクションをテストするには、既存の変数の割り当てをコメントアウトし、ハードコーディングしたテストデータと置き換えます。

\\ let name = $.WorkflowName;
let name = 'Test workflow'
\\ let object = $.Steps.List_monitors;
let object = {0:{
  'name': 'Test monitor'
}}
...

お役に立つドキュメント、リンクや記事: