為什麼我的 CloudWatch 金絲雀停止執行?

1 分的閱讀內容
0

我使用 AWS CloudFormation 或 AWS Command Line Interface (AWS CLI) 在 Amazon CloudWatch 中建立了金絲雀。金絲雀在一段時間後自動停止執行。如何對此問題進行疑難排解?

解決方法

**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確認您使用的是最新版本的 AWS CLI

如果您的 CloudWatch 金絲雀停止執行,請檢查您在建立金絲雀時設定的「DurationInSeconds」值。此值會指定金絲雀根據「Expression」值中的時間表繼續進行一般執行的時間長度(以秒為單位)。如果指定的值是 0,金絲雀即會在您停止前繼續執行。如果您省略此欄位,預設會使用 0 的值。

若要檢查金絲雀的「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

**注意:**若要讓金絲雀繼續執行,您必須寫入將「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。


AWS 官方
AWS 官方已更新 2 年前