使用Terraform注册表中的AWS Lambda模块时,lambda_role
和role_name
之间有什么区别?
它们都引用lambda的执行角色吗?根据以下文件,唯一的区别似乎是一个是名称,一个是ARN。这是唯一的区别吗?
来自当前文档:
role_name
:用于Lambda函数的IAM角色的名称。
lambda_role
:IAM角色ARN附加到Lambda函数。这控制了谁/什么可以调用Lambda函数,以及我们的Lambda函数可以访问哪些资源。有关更多详细信息,请参阅Lambda权限模型。
据我所知,role_name
仅用于为IAM角色分配一个名称,该名称将允许Lambda执行不同的操作(例如,日志记录、跟踪、向DLQ发送事件信息(。lambda_role
实际上是执行角色。代码的设置方式也是,如果您设置了角色名称,则会使用该名称;如果未设置,则会基于lambda_role的值创建该名称。代码中的相关行:
- 当
create_role
为true时,将创建一个新角色,当为false时,将不创建任何角色,并使用lambda_role
中的ARN:https://github.com/terraform-aws-modules/terraform-aws-lambda/blob/master/main.tf#L27 - 创建新角色时,其名称将设置为
role_name
:https://github.com/terraform-aws-modules/terraform-aws-lambda/blob/master/iam.tf#L93