ワークフローの構築

Datadog の Workflow Automation ページからワークフローを作成したり、既存のワークフローを編集したりすることができます。Workflow Automation ページには、既存のワークフロー、各ワークフローの作成者、各ワークフローの最終修正日および実行日が一覧表示されます。

  • ワークフローにカーソルを合わせると、ワークフローの削除や複製を行うことができます。
  • 自分が作成したワークフローだけを表示したい場合は、My workflows をトグルします。

ブループリントからワークフローを構築

  1. Blueprints タブをクリックします。
  2. 必要に応じて、検索バーを使用して、名前、カテゴリー、インテグレーションでブループリントのリストを絞り込むことができます。
  3. 使用したいブループリントを探し、クリックします。ワークフローキャンバスが表示されます。
  4. 鉛筆アイコン (Edit) をクリックして、ワークフロー名を更新します。必要であれば、テキストボックスに新しい名前を入力し、Save をクリックします。
  5. 更新が必要なワークフローステップには、感嘆符のアイコンが表示されます。
  6. 変更したいワークフローの各ステップをクリックし、Configure タブの空欄に必要事項を入力します。
  7. ワークフローの修正が完了したら、Create From Blueprint をクリックします。ワークフローキャンバスが更新され、新しく作成されたワークフローが表示されます。

カスタムワークフローの作成

ワークフローを作成するには

  1. New workflow をクリックします。
  2. ワークフローの名前を入力し、Create をクリックします。
  3. Add a step to get started をクリックし、ワークフローにステップを追加します。また、JSON エディターを使用してワークフローを構築する場合は、Edit JSON Spec をクリックします。

ワークフロービルダーでワークフローを構築する

  1. Add a step to get started をクリックして、ワークフローに最初のステップを追加します。
  2. 検索バーを使ってアクションを検索するか、インテグレーションとその関連アクションをブラウズして、探しているアクションを見つけます。アクションをクリックすると、ワークフローキャンバスのステップに追加されます。
  3. ワークフローキャンバスでステップをクリックすると、そのステップを構成したり、出力やコンテキスト変数を表示したりすることができます。出力やコンテキスト変数の詳細については、コンテキスト変数を参照してください。
  4. ステップの構成が完了したら、プラス (+) アイコンをクリックして別のステップを追加するか、ワークフローを保存してください。

ワークフロー上のステップをクリックすることで、いつでも編集することができます。ワークフロー上のステップをクリックしてドラッグすると、ステップを並べ替えることができます。

JSON でワークフローを構築する

ワークフローのページで Edit JSON Spec をクリックすると、JSON でワークフローを構築または編集することができます。また、JSON エディターでは、以下のことが可能です。

  • Format JSON: JSON を美しくします。
  • Export JSON: ワークフローをダウンロードします。

典型的なワークフローは、3 つのトップレベルのキーを含んでいます。

  • "steps": 「step」オブジェクトの配列。各ステップはワークフローのステップを定義し、名前、アクション ID、ステップパラメーターを含みます。また、steps オブジェクトには、アウトバウンド接続データのキーが含まれます。
  • "startStepName": ワークフローの最初のステップの名前。
  • "connectionEnvs": 接続データと環境変数。

ワークフローの例として、#workflows-test という名前の Slack チャンネルにメッセージを送信するステップを 1 つだけ持つワークフローを紹介します。

Example workflow

{
    "steps": [
        {
            "outboundConnections": [],
            "name": "Send_message",
            "actionId": "com.datadoghq.slack.send_simple_message",
            "parameters": [
                {
                    "name": "teamId",
                    "value": "ABC1234"
                },
                {
                    "name": "channel",
                    "value": "#workflows-test"
                },
                {
                    "name": "mentionTargets",
                    "value": [
                        "@Bits"
                    ]
                },
                {
                    "name": "text",
                    "value": "Hello world!"
                }
            ]
        }
    ],
    "startStepName": "Send_message",
    "connectionEnvs": [
        {
            "env": "default",
            "connections": []
        }
    ]
}

コンテキスト変数

有用なワークフローを作成するためには、あるステップから別のステップにデータを渡したり、ワークフローのトリガーソースからのデータで動作するステップを構成することが必要になることがあります。このようなデータ補間は、コンテキスト変数で行うことができます。

コンテキスト変数には、以下の種類があります。

  • 標準的なワークフロー変数の小さなコレクションは、すべてのワークフローに存在します。
  • 一部のステップにはステップ出力変数が組み込まれており、そのステップからワークフロー内の後続のステップにデータを渡すことができるようになっています。
  • トリガー変数は、トリガーとなるイベントによってワークフローに渡されます。
  • ソースオブジェクト変数は、トリガーとなるイベントによってワークフローに渡されます。

各ステップの Context Variables タブには、そのステップで利用可能なすべてのコンテキスト変数のマップが表示されます。

Context Variables タブ

二重中括弧 ({{) で囲んで、ステップ内のコンテキスト変数にアクセスします。コンテキスト変数内のフィールドにアクセスするには、ハンドルバー式構文を使います。

ワークフロー変数

すべてのワークフローには、3 つの標準変数があります。

  • WorkflowName: ワークフローの名前。{{ WorkflowName }} でアクセスします。
  • WorkflowId: ワークフロー ID。{{ WorkflowId }} でアクセスします。
  • InstanceId: 各ワークフローは一意のインスタンス ID を受け取ります。インスタンス ID には {{ InstanceId }} でアクセスします。

ステップ出力変数

ステップによっては、ワークフロー内の後続のステップで利用可能な出力を作成するものもあります。構文 Steps.<step_name>.<variable> を使ってステップ変数にアクセスします。例えば、GitHub のプルリクエストステータスステップ (Get_pull_request_status) からプルリクエストステータス変数 (state) を取得するには、次のコンテキスト変数を使用します。

{{ Steps.Get_pull_request_status.state }}

探している変数がわからない場合、Datadog は入力中に既存のステップを提案します。また、Context Variables タブで利用可能な変数のリストを参照することもできます。

入力パラメーター

入力パラメーターを使用して、ワークフローにデータを渡します。入力パラメーターは、以下のようなワークフローで使用することができます。

  • ダッシュボードなどから手動でトリガーされる。
  • モニターやセキュリティシグナル通知ルールなどのメンショントリガーを使用する。

入力パラメーターを追加するには

  1. ワークフローキャンバスをクリックします。
  2. Input Parameters の横にある + アイコンをクリックします。
  3. パラメーターのパラメーター名、データタイプ、説明を追加します。表示名はパラメーター名から自動的に生成されます。カスタマイズする場合は、Use custom display name ボックスをチェックします。表示名はパラメーターの読みやすい名前であり、パラメーター名はワークフローのステップでパラメーターを参照するために使用されます。
  4. オプションで、パラメーターのデフォルト値を追加します。デフォルト値を追加した場合、パラメーターは実行時にオプションとなります。

ステップ内の入力パラメーターを参照するには、{{ Trigger.<parameter name>}} という構文を使用します。例えば、user という名前の入力パラメーターを参照するには、{{Trigger.user}} を使用します。

入力パラメーターをステップに追加すると、自動的にワークフローに追加される

Input Parameters セクションには、既存のすべての入力パラメーターの名前とカウンターが表示されます。カウンターにカーソルを合わせると、そのパラメーターを使用しているステップを確認できます。

暗黙の入力パラメーター (ワークフロー内に存在しないパラメーター) を追加するには、ワークフローのステップに {{ Trigger.<parameter name> }} 構文を使用して入力します。次にワークフローを保存すると、パラメーターを明示的パラメーターに変換するためのダイアログが表示されます。ワークフローのトリガーについて詳しくは、ワークフローのトリガーを参照してください。

既存の入力パラメーターを探している場合は、{{ Trigger. と入力して、候補として表示されるかどうかを確認します。また、Context Variables タブで利用可能なパラメーターの一覧を確認することもできます。

ソースオブジェクト変数

ソースオブジェクト変数は、トリガーイベントのプロパティで、実行時に解決されます。ワークフローで利用可能な変数は、ワークフローインスタンスを開始したトリガーのタイプに依存します。例えば、ワークフローインスタンスがモニターによってトリガーされた場合、モニター ID 変数は {{Source.monitor.id}} を使って利用することができます。もし、ワークフローがセキュリティシグナル検出または通知ルールによってトリガーされた場合、シグナル ID は {{Source.securitySignal.id}} を使用して利用可能です。

ソースオブジェクトのすべての変数が Context Variables タブに表示されます。

Context Variables タブのソースオブジェクト変数

エラー処理とフォールバック

ステップに失敗した場合、ワークフローがステップを再試行する回数と間隔を指定して、オプションのフォールバックステップに移行することができます。フォールバックステップを指定しない場合、ワークフローはすべての再試行が終了した後、終了します。

ステップのエラー処理を構成するには

  1. ワークフローキャンバスのステップをクリックします。
  2. Error Handling & Retries セクションの横にある + アイコンをクリックします。
  3. IntervalMax retries の値を調整します。
  4. オプションで、フォールバックステップを追加します。
  5. ワークフローを保存して、変更を適用します。
エラー処理と再試行のセクション

フォールバックを追加する

ステップの失敗を処理するために、Fallback ドロップダウンメニューから選択することで、ダウンストリームのワークフローのステップをフォールバックとして追加することができます。

また、メインのワークフローツリーから分岐するフォールバックステップを作成することも可能です。

  1. Fallback ドロップダウンメニューから、Add a new fallback を選択します。ワークフローキャンバスがフォールバックツリーに置き換わります。
  2. フォールバックツリー上の + アイコンをクリックして、ステップを追加します。
  3. ワークフロービルダーを使ってステップを追加します。フォールバックツリーには、必要な数のステップを追加することができます。
  4. フォールバックステップの構成が完了したら、Save をクリックして変更を適用します。

メインのワークフローキャンバスに戻るには、フォールバックツリーの上にある Main をクリックします。ワークフローキャンバスから、フォールバックがあるステップの横にフォールバックアイコンが表示されます。アイコンをクリックし、フォールバックステップを選択すると、フォールバックツリーが表示されます。または、ステップの Error Handling & Retries セクションの Edit Fallback Tree をクリックして、フォールバックツリーにアクセスすることもできます。Edit Fallback Tree ボタンは、フォールバックステップがメインワークフローの既存のダウンストリームステップでない場合にのみ表示されます。

フォールバックのあるステップ

フォールバックを削除する

  1. メインワークフローキャンバスから、削除したいフォールバックを持つステップをクリックします。
  2. Error Handling & Retries セクションで、Clear をクリックします。

その他の参考資料