Uso das dependências com os canários do CloudWatch Synthetics
Esta seção explica como usar as Dependencies nos canários do CloudWatch Synthetics. O campo Dependencies permite especificar dependências para seus canários, possibilitando a inclusão de bibliotecas adicionais ou código personalizado que seus scripts de canário possam utilizar.
Visão geral
Os canários do CloudWatch Synthetics são compatíveis com a especificação de camadas do Lambda como dependências. Com este recurso, você pode:
-
Compartilhar código comum entre vários canários
-
Gerenciar dependências de forma independente do código do script do seu canário
-
Reduzir o tamanho do script do seu canário ao transferir as dependências para uma camada do Lambda
APIs compatíveis
O campo Dependencies é compatível com as seguintes APIs:
Sintaxe
O campo Dependencies faz parte da estrutura do código na sintaxe da solicitação:
"Code": { "Handler": "string", "S3Bucket": "string", "S3Key": "string", "S3Version": "string", "ZipFile": blob, "Dependencies": [ { "Type": "LambdaLayer", "Reference": "string" } ] }
Uso de dependências
A seguir, apresentamos alguns exemplos e instruções para o uso do campo Dependencies em diferentes cenários.
Criação de um canário com dependências
Ao criar um canário, é possível especificar uma camada do Lambda como uma dependência:
{ "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" }
Atualização das dependências de um canário
É possível atualizar as dependências de um canário usando a API UpdateCanary:
{ "Name": "my-canary", "Code": { "Dependencies": [ { "Type": "LambdaLayer", "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-updated-layer:2" } ] } }
Remoção de dependências
Para remover as dependências de um canário, forneça uma matriz vazia para o campo Dependências:
{ "Name": "my-canary", "Code": { "Dependencies": [] } }
Teste de dependências com StartCanaryDryRun
Antes de atualizar um canário com novas dependências, você pode testá-las usando a API StartCanaryDryRun:
{ "Name": "my-canary", "Code": { "Dependencies": [ { "Type": "LambdaLayer", "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-test-layer:3" } ] } }
Limitações e considerações
-
Somente uma camada do Lambda pode ser especificada como uma dependência.
-
O perfil usado para a criação de um canário com dependências deve ter acesso à API
lambda:GetLayerVersionpara a camada de dependência, além dos perfis e das permissões necessários.
Criação de camadas do Lambda compatíveis
Para obter informações sobre como criar e empacotar camadas, consulte Gerenciar dependências do Lambda com camadas e para compreender a estrutura de empacotamento de uma verificação de canário com base na estrutura de empacotamento do canário, consulte Escrever um script do canário.