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

下列 API 支援 Dependencies 欄位:

語法

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 移除相依項,請為相依項欄位提供空陣列:

{ "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 圖層作為相依項

  • 除了必要的角色和許可之外,用來建立具有相依項之 Canary 的角色,還應具備對相依項圖層的 lambda:GetLayerVersion 存取權

建立相容的 Lambda 圖層

如需有關如何建立和封裝圖層的資訊,請參閱使用圖層管理 Lambda 相依項;若要根據 Canary 封裝結構了解 Canary 檢查的封裝結構,請參閱撰寫 Canary 指令碼