Uso de dependencias con canarios de CloudWatch Synthetics
En esta sección se explica cómo usar Dependencies en los canarios de CloudWatch Synthetics. El campo Dependencies le permite especificar las dependencias de sus canarios, lo que le permite incluir otras bibliotecas o código personalizado que pueden utilizar los scripts de canarios.
Descripción general
Los canarios de CloudWatch Synthetics permite especificar las capas de Lambda como dependencias. Esta característica le permite hacer lo siguiente:
-
Compartir código común en varios canarios
-
Administrar las dependencias por separado del código del script de canarios
-
Reducir el tamaño del script de canarios al mover las dependencias a una capa de Lambda
API compatibles:
El campo Dependencies es compatible con las siguientes API:
Sintaxis
El campo Dependencies forma parte de la estructura de código de la sintaxis de la solicitud:
"Code": { "Handler": "string", "S3Bucket": "string", "S3Key": "string", "S3Version": "string", "ZipFile": blob, "Dependencies": [ { "Type": "LambdaLayer", "Reference": "string" } ] }
Uso de dependencias
Estos son algunos ejemplos e instrucciones para usar el campo Dependencies en diferentes escenarios.
Crear un canario con dependencias
Al crear un canario, puede especificar una capa de Lambda como dependencia:
{ "Name": "my-canary", "Code": { "Handler": "pageLoadBlueprint.handler", "S3Bucket": "my-bucket", "S3Key": "my-canary-script.zip", "Dependencies": [ { "Type": "LambdaLayer", "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-custom-layer:1" } ] }, "ArtifactS3Location": "s3://my-bucket/artifacts/", "ExecutionRoleArn": "arn:aws:iam::123456789012:role/my-canary-role", "Schedule": { "Expression": "rate(5 minutes)" }, "RuntimeVersion": "syn-nodejs-puppeteer-3.9" }
Actualizar las dependencias de un canario
Puede actualizar las dependencias de un canario mediante la API UpdateCanary:
{ "Name": "my-canary", "Code": { "Dependencies": [ { "Type": "LambdaLayer", "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-updated-layer:2" } ] } }
Eliminar dependencias
Para eliminar las dependencias de un canario, proporcione una matriz vacía para el campo Dependencias:
{ "Name": "my-canary", "Code": { "Dependencies": [] } }
Probar las dependencias con StartCanaryDryRun
Antes de actualizar un canario con nuevas dependencias, puede probarlas con la API StartCanaryDryRun:
{ "Name": "my-canary", "Code": { "Dependencies": [ { "Type": "LambdaLayer", "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-test-layer:3" } ] } }
Limitaciones y consideraciones
-
Solo se puede especificar una capa de Lambda como dependencia
-
El rol que se utilice para crear un canario con dependencias debe tener acceso de
lambda:GetLayerVersiona la capa de dependencias además de los roles y permisos necesarios
Crear capas de Lambda compatibles
Para obtener información sobre cómo crear y empaquetar capas, consulte Administrar dependencias de Lambda con capas y para comprender la estructura de empaquetado de un canario según la estructura de empaquetado del canario, consulte Escritura de un script de canario.