AWS CloudFormation 또는 AWS Command Line Interface(AWS CLI)를 사용하여 Amazon CloudWatch에서 카나리를 생성했습니다. 카나리가 일정 시간이 지나면 자동으로 실행을 중지하는 이유를 알고 싶습니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
CloudWatch canary 실행이 중지되면 카나리를 생성할 때 설정한 DurationInSeconds 값을 확인합니다. 이 값은 카나리가 Expression 값의 일정에 따라 정기적으로 실행하는 시간을 지정합니다. 시간의 길이는 초 단위입니다. 0을 지정하면 canary를 중지할 때까지 카나리가 계속 실행됩니다. DurationInSeconds 값을 설정하지 않으면 기본값이 0으로 설정됩니다.
카나리의 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
참고: 카나리가 계속 실행되려면 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인지 확인합니다.