AWS CloudFormation または AWS コマンドラインインターフェイス (AWS CLI) を使用して、Amazon CloudWatch で canary を作成しました。Canary は、一定期間後に自動的に実行を停止しました。この問題を解決するには、どうすれば良いですか?
解決方法
注意: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
CloudWatch Canary が動作しなくなった場合は、Canary を作成したときに設定した「DurationInSeconds」の値を確認します。この値は、[Expression] (式) の値のスケジュールに従って 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 であることを確認します。