1
我已經設置了一個亞馬遜Lambda函數,該函數具有用於開發,測試和生產的不同別名,以及具有指向各自別名版本的幾個階段的API網關。Amazon Lambda - 別名特定配置
現在我想訪問一個數據庫表,顯然每個別名應該訪問它自己的表。在文檔中,我找不到將別名特定配置傳遞給我的函數的可能性。對此有最佳做法嗎?
我已經設置了一個亞馬遜Lambda函數,該函數具有用於開發,測試和生產的不同別名,以及具有指向各自別名版本的幾個階段的API網關。Amazon Lambda - 別名特定配置
現在我想訪問一個數據庫表,顯然每個別名應該訪問它自己的表。在文檔中,我找不到將別名特定配置傳遞給我的函數的可能性。對此有最佳做法嗎?
在API網關中設置Stage Variables,並向您的映射模板中添加如下內容以將這些階段變量傳遞給Lambda函數。
"stage-variables" : {
#foreach($key in $stageVariables.keySet())
"$key" : "$util.escapeJavaScript($stageVariables.get($key))"
#if($foreach.hasNext),#end
#end
}
Lambda函數然後可以從事件對象中抽取事件,如數據庫表名。
這聽起來像是通過API網關公開的功能的一個很好的解決方案。 S3或SNS觸發的功能是否有類似的最佳做法? – Matthias
不幸的是這些更困難。您可以使用DynamoDB表來存儲特定於不同功能別名的設置。然後,您可以檢查'context'對象以獲取'functionVersion'值,然後從DynamoDB查找設置。 –
看起來你也可以從'process.env.AWS_LAMBDA_FUNCTION_VERSION'獲取別名 –