本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Lambda 中繼資料端點
Lambda 中繼資料端點可讓您的函數探索他們在哪個可用區域 (AZ) 中執行,讓您能夠透過路由至 Amazon ElastiCache 和 Amazon RDS 端點等相同可用區域資源來最佳化延遲,並實作可用區域感知彈性模式。
端點會透過執行環境中的 localhost HTTP API 以簡單的 JSON 格式傳回中繼資料,並且可供執行時間和延伸存取。
開始使用
Powertools for AWS Lambda 提供公用程式,以存取 Python、TypeScript、Java 和 .NET 中的 Lambda 中繼資料端點。公用程式會在第一次呼叫後快取回應,並自動處理 SnapStart 快取失效。
使用 Powertools for AWS Lambda 中繼資料公用程式或直接呼叫中繼資料端點
了解可用區域 IDs
AZ IDs (例如,use1-az1) 一律在所有 AWS 帳戶中參考相同的實體位置,而 AZ 名稱 (例如,us-east-1a) 可能會映射到特定區域中每個 AWS 帳戶中的不同實體基礎設施。如需詳細資訊,請參閱 AZ IDs以取得跨帳戶一致性。
將 AZ ID 轉換為 AZ 名稱:
若要將 AZ ID 轉換為 AZ 名稱,請使用 Amazon EC2 DescribeAvailabilityZones API。若要使用此 API,請將 ec2:DescribeAvailabilityZones許可新增至函數的執行角色。
API 參考
環境變數
Lambda 會在每個執行環境中自動設定下列環境變數:
-
AWS_LAMBDA_METADATA_API– 格式的中繼資料伺服器地址{ipv4_address}:{port}(例如169.254.100.1:9001)。 -
AWS_LAMBDA_METADATA_TOKEN– 目前執行環境的唯一身分驗證字符。Lambda 會在初始化時自動產生此權杖。將其包含在所有中繼資料 API 請求中。
Endpoint
GET http://${AWS_LAMBDA_METADATA_API}/2026-01-15/metadata/execution-environment
請求
必要標頭:
-
Authorization– 來自具有 Bearer 結構描述之AWS_LAMBDA_METADATA_TOKEN環境變數的字符值:Bearer <token>。此字符型身分驗證可針對伺服器端請求偽造 (SSRF) 漏洞提供深度防禦。每個執行環境都會在初始化時收到唯一的隨機產生字符。
回應
狀態: 200 OK
Content-Type: application/json
快取控制: private, max-age=43200, immutable
回應在執行環境中是不可變的。用戶端應快取回應並遵循 Cache-Control TTL。對於 SnapStart 函數,TTL 會在初始化期間減少,因此當執行環境可能位於不同的可用區域中時,用戶端會在還原後重新整理中繼資料。如果您使用 Powertools,會自動處理快取和 SnapStart 無效。
本文:
{ "AvailabilityZoneID": "use1-az1" }
AvailabilityZoneID 欄位包含執行環境執行所在可用區域的唯一識別符。
注意
其他欄位可能會新增至未來更新的回應。用戶端應該忽略未知欄位,如果出現新欄位,則不會失敗。
錯誤回應
-
401 未授權 –
Authorization標頭遺失或包含無效的字符。驗證您正在傳遞Bearer ${AWS_LAMBDA_METADATA_TOKEN}。 -
405 不允許的方法 – 請求方法不是
GET。 -
500 內部伺服器錯誤 – 伺服器端處理錯誤。