Pourquoi l'exécution de mon script canary CloudWatch a-t-elle cessé ?

Lecture de 3 minute(s)
0

J'ai créé un script canary dans Amazon CloudWatch par le biais d'AWS CloudFormation ou de l'interface de la ligne de commande AWS (AWS CLI). L'exécution du script Canari a automatiquement cessé après un certain temps. Comment résoudre ce problème ?

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution des commandes AWS CLI, assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Si votre script Canari CloudWatch cesse de s'exécuter, vérifiez la valeur « DurationInSeconds » que vous avez définie lors de la création de votre script Canari. Cette valeur spécifie la durée (en secondes) pendant laquelle le script canary continue à s'exécuter de manière régulière, selon le calendrier de la valeur « Expression ». Si vous spécifiez 0, le script canary continue alors de s'exécuter jusqu'à ce que vous l'arrêtiez. Si vous omettez ce champ, la valeur par défaut est alors de 0.

Afin de vérifier la valeur du paramètre « DurationInSeconds » de votre script canary, exécutez l'API GetCanary Amazon CloudWatch Synthetics :

aws synthetics  get-canary --name [canary_name]

Dans la sortie, vérifiez la valeur « 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": {}
    }
}

Remarque : dans la réponse, la valeur « DurationInSeconds » n'est pas égale à 0.

Si la valeur « DurationInSeconds » ne correspond pas à la durée prévue, exécutez alors l'API UpdateCanary CloudWatch Synthetics :

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

Remarque : pour que le script canary s'exécute en continu, vous devez écrire l'expression du calendrier et définir la valeur « DurationInSeconds » sur 0.

Afin de vérifier vos modifications, exécutez la commande get-canary CloudWatch Synthetics par le biais de l'interface de la ligne de commande AWS (AWS CLI) :

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": {}
    }
}

Dans la sortie, confirmez que la valeur « DurationInSeconds » est 0.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans