View a markdown version of this page

Uso de dependencias con canarios de CloudWatch Synthetics - Amazon CloudWatch

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:GetLayerVersion a 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.