View a markdown version of this page

CloudWatch Synthetics Canary での依存関係の使用 - Amazon CloudWatch

CloudWatch Synthetics Canary での依存関係の使用

このセクションでは、CloudWatch Synthetics Canary で Dependencies を使用する方法について説明します。Dependencies フィールドを使用すると、Canary の依存関係を指定でき、Canary スクリプトで使用できる追加のライブラリまたはカスタムコードを含めることができます。

概要

CloudWatch Synthetics Canary では、依存関係としての Lambda レイヤーの指定をサポートしています。この機能を使用すると、次のことができます。

  • 複数の Canary 間で共通コードを共有する

  • Canary スクリプトコードとは別に依存関係を管理する

  • 依存関係を Lambda レイヤーに移動して Canary スクリプトのサイズを小さくする

サポートされている API

Dependencies フィールドは、次の API でサポートされています。

構文

Dependencies フィールドは、リクエスト構文のコード構造の一部です。

"Code": { "Handler": "string", "S3Bucket": "string", "S3Key": "string", "S3Version": "string", "ZipFile": blob, "Dependencies": [ { "Type": "LambdaLayer", "Reference": "string" } ] }

依存関係の使用

さまざまなシナリオでの Dependencies フィールドの使用例と手順をいくつか示します。

依存関係を使用した Canary の作成

Canary を作成するときに、依存関係として Lambda レイヤーを指定できます。

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

Canary の依存関係の更新

UpdateCanary API を使用して Canary の依存関係を更新できます。

{ "Name": "my-canary", "Code": { "Dependencies": [ { "Type": "LambdaLayer", "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-updated-layer:2" } ] } }

依存関係の削除

Canary から依存関係を削除するには、Dependencies フィールドに空の配列を指定します。

{ "Name": "my-canary", "Code": { "Dependencies": [] } }

StartCanaryDryRun による依存関係のテスト

新しい依存関係により Canary を更新する前に、StartCanaryDryRun API を使用してテストできます。

{ "Name": "my-canary", "Code": { "Dependencies": [ { "Type": "LambdaLayer", "Reference": "arn:aws:lambda:us-west-2:123456789012:layer:my-test-layer:3" } ] } }

制約事項と考慮事項

  • 依存関係として指定できる Lambda レイヤーは 1 つだけです。

  • 依存関係を持つ Canary の作成に使用するロールには、必要なロールとアクセス許可に加えて、依存関係レイヤーへの lambda:GetLayerVersion アクセス権が必要です。

互換性のある Lambda レイヤーの作成

レイヤーの作成とパッケージ化の方法については、「レイヤーによる Lambda 依存関係の管理」を参照してください。また、Canary パッキング構造に基づく Canary チェックのパッケージ構造については、「Canary スクリプトの作成」を参照してください。