¿Por qué ha dejado de ejecutarse mi valor controlado de CloudWatch?

3 minutos de lectura
0

He creado un valor controlado en Amazon CloudWatch mediante AWS CloudFormation o la interfaz de la línea de comandos de AWS (AWS CLI). Quiero saber por qué el valor controlado deja de ejecutarse automáticamente después de un período de tiempo.

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Troubleshoot AWS CLI errors. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Si el valor controlado de CloudWatch deja de ejecutarse, compruebe el valor DurationInSeconds que estableció al crear su valor controlado. Este valor especifica el tiempo durante el cual el valor controlado continúa ejecutando de manera regular de acuerdo con el cronograma en el valor Expression. El tiempo se expresa en segundos. Si especifica 0, el valor controlado continúa en ejecución hasta que lo detenga. Si no establece el valor DurationInSeconds, el valor predeterminado se establece en 0.

Para comprobar el valor del parámetro DurationInSeconds de su valor controlado, ejecute la API GetCanary de CloudWatch Synthetics:

aws synthetics  get-canary --name [canary_name]

En la salida siguiente, compruebe el valor 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": {}
    }
}

Nota: En la salida anterior, DurationInSeconds no es igual a 0.

Si el valor DurationInSeconds no coincide con la duración prevista, ejecute la siguiente API UpdateCanary de CloudWatch Synthetics:

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

Nota: Para que el valor controlado se ejecute de forma continua, debe escribir schedule Expression con el valor DurationInSeconds establecido en 0.

Para comprobar los cambios, utilice la AWS CLI para ejecutar el comando 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": {}
    }
}

En la salida, confirme que el valor DurationInSeconds sea 0.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 8 meses