ワークフローを作成したら、アラート、オンデマンドでの手動、スケジュールの 3 つの方法でワークフローをトリガーできます。
トリガー方法を選択してください
ユースケースに適したアプローチを選択してください。
アラートからのトリガー | アラートからのトリガー | スケジュール通りに実行 |
|---|---|---|
自動化されたインシデント対応 | 新しいワークフローのテスト | 定期的な健康診断 |
自動修復(EC2のサイズ変更、ロールバック) | 手動操作 | 定期的なデータ処理 |
充実したまとめ通知 | アドホックメンテナンス | 日次または週次レポート |
設定:一括宛先として設定 | API : StartWorkflowRun | API :スケジュールの作成 |
ヒント
アラート条件に違反した場合、 New Relicワークフロー オートメーションを宛先として設定することでワークフローを自動的にトリガーできます。 issueIdとaccountIdは自動的に渡されます。セットアップ手順については、「ワークフローから通知を送信する」を参照してください。
あなたが始める前に
ワークフローをトリガーする前に、次のことを確認してください。
- 作成されたワークフロー:テンプレートまたはカスタム構築されたワークフロー定義がアカウントにすでにデプロイされています。
- アカウント ID : New Relic アカウント ID は、アカウント設定で確認できます。
- ワークフロー名: ワークフロー定義の正確な名前。
- 必須入力: ワークフローが期待するすべての値。
- 構成されたシークレット: AWS 認証情報、Slack トークン、またはシークレット マネージャーに保存されているその他のシークレット。
ヒント
ワークフローは初めてですか?ワークフローをトリガーする前に、最初のワークフローを作成します。事前に構築されたワークフローのテンプレートの使用から始めます。
オンデマンドでワークフローを実行する
StartWorkflowRun API を使用してワークフローを手動でトリガーします。これにより、指定した入力に基づいてワークフローが直ちに実行されます。
例: AWS Lambda関数を呼び出す
次のワークフロー定義は、 AWS Lambda関数を呼び出し、出力をログに記録します。 12345678 New Relic アカウント ID に置き換えます。
name: lambda1
workflowInputs: username: type: String defaultValue: "User" key: type: String defaultValue: "${{ :secrets:12345678:USERNAME_AWS_ACCESS_KEY_ID }}" access: type: String defaultValue: "${{ :secrets:12345678:USERNAME_AWS_SECRET_ACCESS_KEY }}" token: type: String defaultValue: "${{ :secrets:12345678:USERNAME_AWS_SESSION_TOKEN }}" region: type: String defaultValue: us-east-1
steps: - name: invoke1 type: action action: aws.lambda.invoke version: 1 inputs: awsAccessKeyId: ${{ .workflowInputs.key }} awsSecretAccessKey: ${{ .workflowInputs.access }} awsSessionToken: ${{ .workflowInputs.token }} region: ${{ .workflowInputs.region }} functionName: hello-you payload: user: ${{ .workflowInputs.username }}
- name: logOutput type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'The lambda function message output is:${{ .steps.invoke1.outputs.payload.body }}'このワークフローを開始するには、次の NerdGraph ミューテーションを使用します。このミューテーションを実行する前に、 secretsManagementCreateSecretミューテーションを使用して AWS 認証情報を保存していることを確認してください。詳細については、シークレット マネージャーを参照してください。
mutation { workflowAutomationStartWorkflowRun( # Specify the account where the workflow is defined scope: { type: ACCOUNT id: "12345678" }
# Reference the workflow definition by name definition: { name: "lambda1" }
# Provide input values for the workflow workflowInputs: [ {key: "key" value: "${{ :secrets:testUser123_AWS_ACCESS_KEY_ID }}"} {key: "access" value: "${{ :secrets:testUser123_AWS_SECRET_ACCESS_KEY }}"} {key: "token" value: "${{ :secrets:testUser123_AWS_SESSION_TOKEN }}"} {key: "region" value:"us-east-2"} {key: "username" value: "Julien"} ] ) { runId } }問題は次のように説明しました。
scope: ワークフロー定義が保存されているアカウントIDdefinition: 実行するワークフローの名前(ワークフロー定義のnameフィールドと一致する必要があります)workflowInputs: ワークフロー定義のworkflowInputsセクションのデフォルト値をオーバーライドするキーの値のペア
ミューテーションはrunId (たとえば、 7bd25287-2af8-42e1-b783-80f4e760a40b ) を返します。この ID を使用してログをクエリし、出力を表示します。

ワークフローのスケジュール
CreateSchedule API を使用して、ワークフローが特定の時間に自動的に実行されるようにスケジュールします。スケジュールされたワークフローは、手動による介入なしに定期的なタスクを実行します。
ワークフローをスケジュールするタイミング:
- 定期的な健康診断
- 定期的なデータ処理
- 日次/週次レポート
- スケジュールされたメンテナンスウィンドウ
- 定期的なバックアップまたはクリーンアップ
Cron式リファレンス
スケジュールでは、cron 式を使用してワークフローの実行タイミングを定義します。形式: minute hour day month weekday
パターン | 説明 | 使用例 |
|---|---|---|
| 毎日午前9時 | 毎朝の健康チェック |
| 平日午前9時 | 営業日の運営 |
| 6時間ごと | 定期的な同期操作 |
| 月初めの日の深夜0時 | 月次レポート |
| 10分ごと(最小間隔) | 頻繁なポーリング、ヘルスチェック |
| 毎週日曜日の深夜 | 毎週のクリーンアップタスク |
重要
最小スケジュール間隔:スケジュールは少なくとも 10 分間隔にする必要があります。ワークフローを 10 分間隔より頻繁に実行するようにスケジュールすることはできません。10 分未満の間隔の場合は、10 分ごとにスケジュールを設定し、ワークフロー内で待機ステップを使用することを検討してください。すべてのスケジュール制約については、ワークフローの制限を参照してください。
ヒント
Cron構文: * everyを意味し、 / every nthを意味し、 -はrangeを意味します。例: 0 9 * * 1-5 = At minute 0, hour 9, every day, every month, Monday through Friday 。
例: 毎日の健康診断をスケジュールする
次の例では、 lambda1ワークフローを毎日東部標準時の午前 9 時に実行するようにスケジュールします。
mutation { workflowAutomationCreateSchedule( # Specify the account where the workflow is defined scope: { type: ACCOUNT id: "12345678" }
# Reference the workflow definition by name definition: { name: "lambda1" }
# Configure the schedule schedule: { # Cron expression: minute hour day month weekday # "0 9 * * *" = every day at 9:00 AM cronExpression: "0 9 * * *"
# Timezone for the schedule timezone: "America/New_York"
# Optional: Schedule name for identification name: "daily-lambda-health-check"
# Optional: Add a description description: "Runs Lambda health check every morning at 9 AM" }
# Provide input values for the workflow workflowInputs: [ {key: "key" value: "${{ :secrets:testUser123_AWS_ACCESS_KEY_ID }}"} {key: "access" value: "${{ :secrets:testUser123_AWS_SECRET_ACCESS_KEY }}"} {key: "token" value: "${{ :secrets:testUser123_AWS_SESSION_TOKEN }}"} {key: "region" value:"us-east-2"} {key: "username" value: "HealthCheckBot"} ] ) { scheduleId } }返される値: scheduleId 、スケジュールの一意の識別子 (後でスケジュールを更新または削除するために使用します)
回避策: 10分未満の間隔
10 分間隔よりも頻繁に確認する必要がある場合は、ワークフローを最小 10 分間隔でスケジュールし、ワークフロー定義内の待機ステップを使用して追加のポーリング間隔を作成します。
5 分間隔のポーリングを使用したワークフローの例:
name: frequent-health-check
steps: # First check happens immediately when scheduled - name: firstCheck type: action action: newrelic.nrdb.query version: 1 inputs: query: "FROM Transaction SELECT count(*) WHERE appName = 'MyApp' SINCE 5 minutes ago"
# Wait 5 minutes - name: waitStep type: wait seconds: 300
# Second check happens 5 minutes after the workflow started - name: secondCheck type: action action: newrelic.nrdb.query version: 1 inputs: query: "FROM Transaction SELECT count(*) WHERE appName = 'MyApp' SINCE 5 minutes ago"*/10 * * * *を使用して、このワークフローを 10 分ごとに実行するようにスケジュールします。これにより、効果的な 5 分間のポーリングが可能になります。
- 0:00 - ワークフローが開始し、最初にチェックを実行します
- 0:05 - secondCheck 実行 (待機ステップ後)
- 0:10 - 次のスケジュールされたワークフローが開始され、最初に実行されるチェック
- 0:15 - secondCheck 実行 (待機ステップ後)
ヒント
ワークフローの期間制限:ワークフローの期間は最大 7 日間であることに注意してください。 それに応じて待機手順とポーリング頻度を設計します。詳細については、ワークフローの制限を参照してください。
スケジュールを管理する
スケジュールを作成した後:
- アクティブなスケジュールの表示:ワークフロー ダッシュボードでスケジュールされたすべての実行を表示します。
- 更新スケジュール: UpdateSchedule APIを使用して頻度または入力を変更します
- スケジュールの削除: 定期的な実行を停止するには、DeleteSchedule API を使用します。
完全な API ドキュメントについては、 「ワークフロー自動化 API」を参照してください。
次のステップ
- ワークフローの管理: 実行履歴を編集、複製、監視します。