我使用 AWS CloudFormation 或 AWS Command Line Interface (AWS CLI) 在 Amazon CloudWatch 中建立 Canary。我想知道為什麼 Canary 在一段時間之後自動停止執行。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱 Troubleshoot AWS CLI errors。此外,請確認您使用的是最新的 AWS CLI 版本。
如果您的 CloudWatch Canary 停止執行,請檢查您在建立 Canary 時設定的 DurationInSeconds 值。此值會根據 Expression 值中的排程指定 Canary 繼續進行一般執行的時間長度。時間長度以秒為單位。如果您指定為 0,Canary 會繼續執行,直至您將其停止。如果您未設定 DurationInSeconds 值,預設值將設定為 0。
若要檢查 Canary 的 DurationInSeconds 參數值,請執行 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 執行 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。