0

我一直試圖在使用雲形態模板的API網關中創建API時使用IAM角色,以便API網關可以調用設置爲端點的Lambda函數特定的GET/POST調用。在Cloudformation模板中爲AWS API網關使用IAM角色

我遇到了這個,而搜索: - How can I grant permission to API Gateway to invoke lambda functions through CloudFormation?

這是有益的,如果有要調用一個lambda函數。但是,如果使用JSON/Swagger定義部署API,並且有多個lambda函數作爲端點,那麼所有這些都需要添加到雲形成模板中。

是否有任何其他模板資源可用於將IAM角色關聯到API網關,而不是使用AWS :: Lambda :: Permission?

回答

0

我建議使用AWS :: Lambda :: Permission將每個Lambda函數分別添加到您的CloudFormation模板中。這爲您提供最佳的運行時性能,並明確地管理您的權限。

如果您反對這樣做,那麼另一種方法是讓API網關通過角色調用您的Lambda函數。在您的帳戶中創建角色,無論是手動還是通過CloudFormation。授予此角色權限,可以單獨使用星號(*)或使用星號(*)來調用Lambda函數。定義API網關集成時指定此角色。在調用您的Lambda函數之前,API網關將擔任此角色。

請注意,這會在運行時增加一些延遲,因爲在每次調用Lambda函數之前,API網關都必須執行額外的假定角色調用。

+0

您能否提供一個指定IAM角色作爲使用CloudFormation的API網關集成的一部分的示例? –

+0

我沒有一個方便的示例,但文檔位於以下位置:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html請參閱「證書」部分下的屬性。 –

相關問題