新增 AWS AppConfig 代理程式 Lambda 延伸 - AWS AppConfig

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

新增 AWS AppConfig 代理程式 Lambda 延伸

若要使用 AWS AppConfig 代理程式 Lambda 延伸模組,您需要將擴充功能新增至您的 Lambda。這可以透過將 AWS AppConfig 代理程式 Lambda 延伸模組新增至 Lambda 函數作為層,或在 Lambda 函數上啟用擴充功能做為容器映像來完成。

注意

AWS AppConfig 擴充功能不受執行階段限制,並支援所有執行階段。

開始之前

啟用 AWS AppConfig 代理程式 Lambda 延伸模組之前,請執行下列動作:

  • 在 Lambda 函數中組織組織組態,以便您可以將它們外部化到 AWS AppConfig.

  • 建立 AWS AppConfig 人工因素和組態資料,包括功能旗標或自由格式組態資料。如需詳細資訊,請參閱在中建立特徵旗標和任意格式組態資料 AWS AppConfig

  • 新增 Lambda 函數執行角色所使用的 AWS Identity and Access Management (IAM) 原則,appconfig:StartConfigurationSessionappconfig:GetLatestConfiguration加入原則。如需詳細資訊,請參閱《AWS Lambda 開發人員指南》中的 AWS Lambda 執行角色。如需有關 AWS AppConfig 權限的詳細資訊,請參閱服務授權參考 AWS AppConfig中的動作、資源和條件索引

使用層和新增 AWS AppConfig 代理程式 Lambda 延伸模組 ARN

若要使用 AWS AppConfig 代理程式 Lambda 延伸模組,您可以將擴充功能新增至 Lambda 函數做為一個層。有關如何向函數添加圖層的詳細信息,請參閱AWS Lambda 開發人員指南中的配置擴展。 AWS Lambda 控制台中擴展名的名稱是 AWS AppConfig-擴展名。另請注意,當您將擴充功能新增為 Lambda 的層時,必須指定 Amazon 資源名稱 (ARN)。ARN從下列清單中選擇一個與平台相對應的清單,以及 AWS 區域 您建立 Lambda 的位置。

如果您想在將擴充功能新增至函式之前先測試擴充功能,您可以使用下列程式碼範例來驗證其運作正常。

import urllib.request def lambda_handler(event, context): url = f'http://localhost:2772/applications/application_name/environments/environment_name/configurations/configuration_name' config = urllib.request.urlopen(url).read() return config

要對其進行測試,請為 Python 創建一個新的 Lambda 函數,添加擴展名,然後運行 Lambda 函數。執行 Lambda 函數之後, AWS AppConfig Lambda 函數會傳回您為 http://localhost:2772 路徑指定的組態。如需建立 Lambda 函數的詳細資訊,請參閱AWS Lambda 開發人員指南的使用主控台建立 Lambda 函數

重要

您可以在記錄中檢視 AWS AppConfig 代理程式 Lambda 延伸模組的 AWS Lambda 記錄資料。記錄項目的appconfig agent前面會加上。範例如下。

[appconfig agent] 2024/05/07 04:19:01 ERROR retrieve failure for 'SourceEventConfig:SourceEventConfigEnvironment:SourceEventConfigProfile': StartConfigurationSession: api error AccessDenied: User: arn:aws:sts::0123456789:assumed-role/us-east-1-LambdaRole/extension1 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::0123456789:role/test1 (retry in 60s)