通过控制台创建 sam 应用程序时,在 template.yml 文件中附加一个预先存在的角色

Attach a preexisting role in template.yml file while creating sam application through console

我正在尝试通过 sam-cli.By 创建一个具有预先存在的角色的 sam 应用程序,默认情况下,sam clil 使用基本的 lambda 执行策略创建新的用户角色,但是我想 运行在我的 sam 应用程序上进行 X 射线扫描,我希望使用现有用户角色创建应用程序。

这是我的template.yml

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  POCLambdaExecutionRole:
  Type: 'AWS::IAM::Role'
  SAMLocal:
    Type: AWS::Serverless::Function
    Properties:
      Handler: SAMLocal.lambda_handler
      Runtime: python2.7
    TracingConfig:
      Mode: Active
      Environment:
        Variables:
          dev_table: "MessageQueue"
      Events:
        SAMLocal:
          Type: Api
          Properties:
            Path: /
            Method: GET
  SAMLocal1:
    Type: AWS::Serverless::Function
    Properties:
      Handler: SAMLocal.lambda_handler
      Runtime: python2.7

我怎样才能达到同样的效果。

找到这篇关于堆栈溢出的文章,但对我的情况没有真正帮助 Associate existing IAM role with EC2 instance in CloudFormation

您需要将现有角色以 ARN 格式放入您的 yaml 文件中

角色:arn:aws:iam::XXXXXX:role/role

您可以设置角色或权限。如果您没有为您的功能定义角色,SAM 将为每个功能创建一个角色。默认情况下,它将单独针对每个函数。

按照我在解决方案角色中描述的方式在您的职能之外声明角色:arn:aws:iam::XXXXXX:role/role

Check THIS