我在使用云信息模板在API网关中创建API时尝试使用IAM角色,以便API网关可以调用Lambda函数,该函数被设置为特定GET / POST调用的端点。
我在搜索时发现了这一点: - 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 :(得分:0)
我建议使用AWS :: Lambda :: Permission将每个Lambda函数分别添加到您的CloudFormation模板中。这为您提供了最佳的运行时性能,并且还明确地管理了您的权限。
如果您反对这样做,那么另一种方法是让API Gateway通过角色调用您的Lambda函数。手动或通过CloudFormation在帐户中创建角色。授予此角色权限以使用星号(*)单独或大量调用Lambda函数。在定义API网关集成时指定此角色。在调用Lambda函数之前,API Gateway将承担此角色。
请注意,这确实会在运行时添加一些延迟,因为API Gateway必须在每次调用Lambda函数之前执行额外的假定角色调用。