

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 Canary
<a name="CloudWatch_Synthetics_Canaries_Create"></a>

**重要**  
請確認您使用 Synthetics Canary 來監控只有您擁有許可 (或您是擁有者) 的端點和 API。取決於 Canary 頻率設定，這些端點可能會遭遇增加的流量。

當您使用 CloudWatch 主控台建立 Canary 時，您可以使用 CloudWatch 提供的藍圖建立 Canary，或者也可以撰寫自己的指令碼。如需詳細資訊，請參閱[使用 Canary 藍圖](CloudWatch_Synthetics_Canaries_Blueprints.md)。

 CloudFormation 如果您使用自己的 Canary 指令碼，也可以使用 建立 Canary。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的 [ AWS::Synthetics::Canary](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-synthetics-canary.html)。

如果您正在編寫自己的指令碼，您可以使用 CloudWatch Synthetics 內建在程式庫中的多個函數。如需詳細資訊，請參閱[Synthetics 執行時間版本](CloudWatch_Synthetics_Canaries_Library.md)。

**注意**  
當您建立 Canary 時，其中一個建立的圖層是前面加上 ` Synthetics` 的 Synthetics 圖層。此圖層由 Synthetics 服務帳戶擁有，包含執行時期程式碼。

**建立 Canary**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，依序選擇 **Application Signals**、**Synthetics Canary**。

   

1. 選擇 **Create Canary (建立 Canary)**。

1. 選擇下列其中一項：
   + 若要讓 Canary 以藍圖指令碼為基礎，請選擇 **Use a blueprint (使用藍圖)**，然後選擇您要建立的 Canary 類型。。如需每種藍圖類型之用途的詳細資訊，請參閱[使用 Canary 藍圖](CloudWatch_Synthetics_Canaries_Blueprints.md)。
   + 若要上傳您自己的 Node.js 指令碼以建立自訂 Canary，請選擇 **Upload a script (上傳指令碼)**。

     然後，您可以將指令碼拖曳到 **Script (指令碼)** 中，或選擇 **Browse files (瀏覽檔案)** 以瀏覽至檔案系統中的指令碼。
   + 若要從 S3 儲存貯體匯入指令碼，請選擇 **Import from S3 (從 S3 匯入)**。在 **Sourse location (來源位置)** 下方輸入 Canary 的完整路徑，或選擇 **Browse S3 (瀏覽 S3)**。

     您必須擁有您使用之 S3 儲存貯體的 `s3:GetObject` 和 `s3:GetObjectVersion` 許可。儲存貯體必須位於您建立 Canary 的相同 AWS 區域中。

1. 在 **Name (名稱)** 下方輸入 Canary 的名稱。此名稱會用於許多頁面，因此我們建議您使用描述性的名稱，以與其他 Canary 區別。

1. 在 **Application or endpoint URL (應用程式或端點 URL)** 下方，輸入您要 Canary 進行測試的 URL。此 URL 必須包含通訊協定 (例如 https://)。

   如果您想要讓 Canary 在 VPC 上測試端點，您稍後在本程序中也必須輸入 VPC 的相關資訊。

1. 如果您為 Canary 使用您自己的指令碼，則請在 **Lamdba handler (Lambda 處理常式)** 下方輸入您希望 Canary 開始的進入點。如需 Lambda 處理常式格式的資訊，請參閱 [Synthetics 執行時期版本](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html)。

1. 在**指令碼編輯器**、**執行時期版本**下，選取 Synthetics 執行時期版本以執行 Canary。如需 Synthetics 執行時期版本的資訊，請參閱 [Synthetics 執行時期版本](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html)。

   在**瀏覽器組態**下，您可以啟用瀏覽器以測試 Canary。必須至少選擇一個瀏覽器。

1. 如果您在指令碼中使用環境變數，選擇 **Environment variables** (環境變數)，然後為指令碼中定義的每個環境變數指定一個數值。如需詳細資訊，請參閱[環境變數](CloudWatch_Synthetics_Canaries_WritingCanary_Nodejs_Pup.md#CloudWatch_Synthetics_Environment_Variables)。

1. 在 **Schedule** (排程) 下，選擇只執行此 Canary 一次、使用 Rate 表達式連續執行，或使用 Cron 表達式對其進行排程。
   + 當您使用 CloudWatch 主控台建立連續執行的 Canary 時，您可以在每分鐘一次到每小時一次之間選擇一種速率。
   + 如需撰寫 Canary 排程的 Cron 表達式的詳細資訊，請參閱 [使用 Cron 排程 Canary 執行](CloudWatch_Synthetics_Canaries_cron.md)。

1. (選用) 如要設定 canary 的逾時值，請選擇 **Additional configuration** (其他組態)，然後指定逾時值。使其不短於 15 秒，以允許 Lambda 冷啟動和啟動 canary 儀器所需的時間。

1. 在 **Data retention (資料保留)** 下方，指定要將 Canary 執行失敗和成功的資訊保留多長時間。範圍是 1-455 天。

   此設定會影響 [GetCanaryRuns](https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_GetCanaryRuns.html) 操作傳回的資訊範圍，以及 Synthetics 主控台中顯示的資訊範圍。

   它不會影響存放在 Amazon S3 儲存貯體中的資料，也不會影響金絲雀發布的日誌或指標。

   無論 Canary 的資料保留期間為何，主控台中顯示的資訊範圍都有特定限制。在 Synthetics 主控台主檢視中，相對和絕對時間範圍都限制為 7 天。在特定 Canary 的 Synthetics 主控台檢視中，相對時間範圍限制為 7 天，絕對時間範圍限制為 30 天。

1. 在**資料儲存體**下方，選取 Amazon S3 儲存貯體以用來儲存來自 Canary 執行的資料。儲存貯體名稱不能包含句點 (.)。如果您將此保留為空白，則會使用或建立預設的 Amazon S3 儲存貯體。

1. （選用） 在預設情況下，Canary 會將成品存放在 Amazon S3，並使用 AWS受管 AWS KMS 金鑰靜態加密成品。您可以使用不同的加密選項，方法是選擇 **Data Storage** (資料儲存) 區段中的 **Additional configuration** (其他組態)。然後您可以選擇要用於加密的金鑰類型。如需詳細資訊，請參閱[加密 Canary 成品](CloudWatch_Synthetics_artifact_encryption.md)。

1. 在 **Access permissions** (存取許可) 下方，選擇是要建立 IAM 角色來執行 Canary，還是使用現有角色。

   如果您讓 CloudWatch Synthetics 建立角色，則其會自動包含所有必要的許可。如果您想要自行建立角色，請參閱 [Canary 的必要角色和許可](CloudWatch_Synthetics_Canaries_CanaryPermissions.md) 以瞭解有關必要許可的資訊。

   如果您在建立 Canary 時使用 CloudWatch 主控台來建立 Canary 的角色，則無法將該角色重複用於其他 Canary，因為這些角色專屬於一個 Canary。如果您已手動建立可供多個 Canary 使用的角色，則可使用現有的角色。

   若要使用現有角色，您必須具有將該角色傳遞給 Synthetics 和 Lambda 的 `iam:PassRole` 許可。您也必須擁有 `iam:GetRole` 許可。

1. (選用) 在 **Alarms** (警示) 下方，選擇是否要為此 Canary 建立預設 CloudWatch 警示。如果您選擇建立警示，則會以下列名稱慣例建立警示：`Synthetics-Alarm-canaryName -index `

   `index` 是代表為此 Canary 建立的每個不同警示的數字。第一個警示的索引為 1，第二個警示的索引為 2，以此類推。

1. (選用) 若要在 VPC 上的端點執行此 Canary 測試，請選擇 **VPC settings (VPC 設定)**，然後執行下列操作：

   1. 選取託管端點的 VPC。

   1. 在 VPC 上選取一或多個子網路。您必須選取私有子網路，因為當 IP 地址無法在執行期間指派給 Lambda 執行個體時，則 Lambda 執行個體無法設定為在公有子網路中執行。如需詳細資訊，請參閱[設定 Lambda 函數以存取 VPC 中的資源](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)。

   1. 在 VPC 上選取一或多個安全群組。

   1. 若要允許為此 Canary 傳出 IPv6 流量，請選取**允許雙堆疊子網路的 IPv6 流量**。這可讓 Canary 透過 IPv6 監控僅支援 IPv6 及啟用雙堆疊的端點。

      可以透過授與 Canary 網際網路存取權並適當設定 VPC 子網路，來監控 VPC 外部的端點。如需詳細資訊，請參閱[在 VPC 上執行 Canary](CloudWatch_Synthetics_Canaries_VPC.md)。

   如果端點位於 VPC 上，則必須啟用 Canary 以將資訊傳送至 CloudWatch 和 Simple Storage Service (Amazon S3)。如需詳細資訊，請參閱[在 VPC 上執行 Canary](CloudWatch_Synthetics_Canaries_VPC.md)。

1. (選用) 在 **Tags (標籤)** 下方，新增一或多個鍵/值對，作為此 Canary 的標籤。標籤可協助您識別和組織 AWS 資源，並追蹤 AWS 成本。如需詳細資訊，請參閱[標記您的 Amazon CloudWatch 資源](CloudWatch-Tagging.md)。

   如果您希望套用於 Canary 的標籤也套用至 Canary 使用的 Lambda 函式，請在**標籤複寫**下選擇 **Lambda 函式**。如果選擇此選項，CloudWatch Synthetics 會讓 Canary 和 Lambda 函式上的標籤保持同步：
   + Synthetics 會將您在此處指定的相同標籤套用至 Canary 和 Lambda 函式。
   + 如果您稍後更新 Canary 的標籤並保持選取此選項，Synthetics 會修改 Lambda 函式上的標籤，與 Canary 保持同步。

1. (選用) 在 **Active tracing** (主動追蹤) 中，選擇是否為此 Canary 啟用 X-Ray 主動追蹤。主動追蹤僅適用於 Puppeteer 和 Java 執行時期。如需詳細資訊，請參閱[Canary 和 X-Ray 追蹤](CloudWatch_Synthetics_Canaries_tracing.md)。

## 為 Canary 建立的資源
<a name="CloudWatch_Synthetics_Canaries_Resources_Created"></a>

當您建立 Canary 時，會建立下列資源：
+ 具有 `CloudWatchSyntheticsRole-canary-name -uuid` 名稱的 IAM 角色 (如果您使用 CloudWatch 主控台建立 Canary 並指定要為 Canary 建立新角色)
+ 具有 `CloudWatchSyntheticsPolicy- canary-name-uuid` 名稱的 IAM 政策。
+ 具有 `cw-syn-results-accountID -region` 名稱的 S3 儲存貯體。
+ 具有 `Synthetics-Alarm-MyCanaryName` 名稱的警示 (如果您希望為 Canary 建立警示)
+ Lambda 函數和圖層 (如果您使用藍圖來建立 Canary)。這些資源具有字首 `cwsyn-MyCanaryName`。
+ 具有 `/aws/lambda/cwsyn-MyCanaryName -randomId` 名稱的 CloudWatch Logs 日誌群組。