• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

ワークフローを開始してスケジュールする

プレビュー

この機能はまだ開発中ですが、ぜひお試しください。

この機能は現在、弊社のプレリリース ポリシーに従ってプレビュー プログラムの一部として提供されています。

ワークフローを作成したら、アラート、オンデマンドでの手動、スケジュールの 3 つの方法でワークフローをトリガーできます。

トリガー方法を選択してください

ユースケースに適したアプローチを選択してください。

アラートからのトリガー

アラートからのトリガー

スケジュール通りに実行

自動化されたインシデント対応

新しいワークフローのテスト

定期的な健康診断

自動修復(EC2のサイズ変更、ロールバック)

手動操作

定期的なデータ処理

充実したまとめ通知

アドホックメンテナンス

日次または週次レポート

設定一括宛先として設定

API : StartWorkflowRun

API :スケジュールの作成

ヒント

アラート条件に違反した場合、 New Relicワークフロー オートメーションを宛先として設定することでワークフローを自動的にトリガーできます。 issueIdaccountIdは自動的に渡されます。セットアップ手順については、「ワークフローから通知を送信する」を参照してください。

あなたが始める前に

ワークフローをトリガーする前に、次のことを確認してください。

ヒント

ワークフローは初めてですか?ワークフローをトリガーする前に、最初のワークフローを作成します。事前に構築されたワークフローのテンプレートの使用から始めます。

オンデマンドでワークフローを実行する

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: ワークフロー定義が保存されているアカウントID
  • definition: 実行するワークフローの名前(ワークフロー定義のnameフィールドと一致する必要があります)
  • workflowInputs: ワークフロー定義のworkflowInputsセクションのデフォルト値をオーバーライドするキーの値のペア

ミューテーションはrunId (たとえば、 7bd25287-2af8-42e1-b783-80f4e760a40b ) を返します。この ID を使用してログをクエリし、出力を表示します。

Workflow automation logs showing the Lambda function output

ワークフローのスケジュール

CreateSchedule API を使用して、ワークフローが特定の時間に自動的に実行されるようにスケジュールします。スケジュールされたワークフローは、手動による介入なしに定期的なタスクを実行します。

ワークフローをスケジュールするタイミング:

  • 定期的な健康診断
  • 定期的なデータ処理
  • 日次/週次レポート
  • スケジュールされたメンテナンスウィンドウ
  • 定期的なバックアップまたはクリーンアップ

Cron式リファレンス

スケジュールでは、cron 式を使用してワークフローの実行タイミングを定義します。形式: minute hour day month weekday

パターン

説明

使用例

0 9 * * *

毎日午前9時

毎朝の健康チェック

0 9 * * 1-5

平日午前9時

営業日の運営

0 */6 * * *

6時間ごと

定期的な同期操作

0 0 1 * *

月初めの日の深夜0時

月次レポート

*/10 * * * *

10分ごと(最小間隔)

頻繁なポーリング、ヘルスチェック

0 0 * * 0

毎週日曜日の深夜

毎週のクリーンアップタスク

重要

最小スケジュール間隔:スケジュールは少なくとも 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」を参照してください。

次のステップ

Copyright © 2025 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.