Amazon web services 在Cloudformation模板中为AWS API网关使用IAM角色

Amazon web services 在Cloudformation模板中为AWS API网关使用IAM角色,amazon-web-services,aws-api-gateway,amazon-cloudformation,Amazon Web Services,Aws Api Gateway,Amazon Cloudformation,我一直在尝试使用IAM角色,同时使用cloudformation模板在API网关中创建API,以便API网关可以调用Lambda函数,该函数被设置为特定GET/POST调用的端点 我在搜索时发现了这个:- 如果要调用一个lambda函数,这将非常有用。但是如果API是使用JSON/Swagger定义部署的,并且有多个lambda函数作为端点,那么所有这些都需要添加到云形成模板中 是否有其他模板资源可用于将IAM角色与API网关关联,而不是使用AWS::Lambda::Permission?我建议

我一直在尝试使用IAM角色,同时使用cloudformation模板在API网关中创建API,以便API网关可以调用Lambda函数,该函数被设置为特定GET/POST调用的端点

我在搜索时发现了这个:-

如果要调用一个lambda函数,这将非常有用。但是如果API是使用JSON/Swagger定义部署的,并且有多个lambda函数作为端点,那么所有这些都需要添加到云形成模板中


是否有其他模板资源可用于将IAM角色与API网关关联,而不是使用AWS::Lambda::Permission?

我建议使用AWS::Lambda::Permission将每个Lambda函数单独添加到CloudFormation模板中。这将为您提供最佳的运行时性能,并显式管理您的权限

如果您反对这样做,那么另一种选择是让API网关通过角色调用Lambda函数。手动或通过CloudFormation在您的帐户中创建角色。授予此角色调用Lambda函数的权限,可以单独调用,也可以使用星号(*)整体调用。定义API网关集成时指定此角色。API网关将在调用Lambda函数之前承担此角色


请注意,这确实会在运行时增加一些延迟,因为API Gateway在每次调用Lambda函数之前都必须执行一个额外的假定角色调用。

您能否提供一个示例,说明如何使用CloudFormation将IAM角色指定为API Gateway集成的一部分?我手头没有示例,但是文档在这里:请参阅属性下的凭据部分。