CloudWatch Canary が動作しなくなるのはなぜですか?

最終更新日: 2020 年 10 月 13 日

AWS CloudFormation または AWS コマンドラインインターフェイス (AWS CLI) を使用して、Amazon CloudWatch で Canary を作成しました。Canary は、一定期間後に自動的に実行を停止しました。この問題を解決するには、どうすれば良いですか?

解決方法

注意: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

CloudWatch Canary が動作しなくなった場合は、Canary を作成したときに設定した「DurationInSeconds」の値を確認します。この値は、「式」値のスケジュールに従って Canary が通常の実行を継続する時間の長さ (秒単位) を指定します。0 を指定すると、Canary は停止するまで実行を続けます。このフィールドを省略すると、デフォルトの 0 が使用されます。

Canary の「durationInSeconds」パラメータの値をチェックするには、Amazon CloudWatch Synthetics の GetCanary API を実行します。

aws synthetics  get-canary --name [canary_name]

出力で、「DurationInSeconds」の値を確認します。

{
    "Canary": {
        "Id": "a1495b85-1c60-4f29-92c1-540f62fa34e3",
        "Name": "canary_name",
        "Code": {
            "SourceLocationArn": "arn:aws:lambda:eu-west-1:YourAccount:layer:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
            "Handler": "CanaryFunction.handler"
        },
        "ExecutionRoleArn": "arn:aws:iam::YourAccount:role/CanaryRoleName",
        "Schedule": {
            "Expression": "rate(2 minutes)",
            "DurationInSeconds": 360
        },
        "RunConfig": {
            "TimeoutInSeconds": 120
        },
        "SuccessRetentionPeriodInDays": 31,
        "FailureRetentionPeriodInDays": 31,
        "Status": {
            "State": "READY"
        },
        "Timeline": {
            "Created": 1594481063.96,
            "LastModified": 1594481063.96
        },
        "ArtifactS3Location": "S3_Bucket_for_artifacts",
        "EngineArn": "arn:aws:lambda:eu-west-1:YourAccount:function:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
        "RuntimeVersion": "syn-1.0",
        "Tags": {}
    }
}

注意: 応答では、「DurationInSeconds」は0に等しくありません。

「DurationInSeconds」の値が意図した期間と一致しない場合は、CloudWatch Synthetics の UpdateCanary API を実行します。

aws synthetics  update-canary --name canary_cli --schedule Expression="rate(2 minutes)",DurationInSeconds=0

注意: Canary を継続的に実行するには、「DurationInSeconds」を 0 に設定してスケジュール式を記述する必要があります。

変更を確認するには、AWS CLI を使用して CloudWatch Synthetics の get-canary コマンドを実行します。

aws synthetics  get-canary --name [canary_name]
{
    "Canary": {
        "Id": "a1495b85-1c60-4f29-92c1-540f62fa34e3",
        "Name": "canary_name",
        "Code": {
            "SourceLocationArn": "arn:aws:lambda:eu-west-1:YourAccount:layer:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
            "Handler": "CanaryFunction.handler"
        },
        "ExecutionRoleArn": "arn:aws:iam::YourAccount:role/CanaryRoleName",
        "Schedule": {
            "Expression": "rate(2 minutes)",
            "DurationInSeconds": 0
        },
        "RunConfig": {
            "TimeoutInSeconds": 120
        },
        "SuccessRetentionPeriodInDays": 31,
        "FailureRetentionPeriodInDays": 31,
        "Status": {
            "State": "READY"
        },
        "Timeline": {
            "Created": 1594481063.96,
            "LastModified": 1594481063.96
        },
        "ArtifactS3Location": "S3_Bucket_for_artifacts",
        "EngineArn": "arn:aws:lambda:eu-west-1:YourAccount:function:cwsyn-canary_name-a1495b85-1c60-4f29-92c1-540f62fa34e3:1",
        "RuntimeVersion": "syn-1.0",
        "Tags": {}
    }
}

出力で、「DurationInSeconds」の値が 0 であることを確認します。</p


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?