是否可以在SAM模板中定义常量以使我的模板文件易于维护?

问题描述 投票:0回答:1

我正在使用AWS SAM将我的AWS Lambda函数部署到AWS。

我能够在Runtime部分中定义一次Globals,并且想知道是否可以为我的Lambdas(Role: arn:aws:iam::12345678:role/lambda-role)承担的AWS Role定义一个常量,该常量目前在模板中重复每个功能的文件。

这是我的SAM模板:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Globals:
  Function:
    Runtime: python3.7

Resources:
  FunctionA:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: lambdas/
      Handler: app.event_handler_a
      Role: arn:aws:iam::12345678:role/lambda-role

  FunctionB:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: lambdas/
      Handler: app.event_handler_b
      Role: arn:aws:iam::12345678:role/lambda-role
amazon-web-services aws-lambda amazon-cloudformation
1个回答
0
投票

您可以使用ParametersMappings

例如带有Parameters

Parameters:

  LambdaRoleArn:
    Type: String
    Default: arn:aws:iam::12345678:role/lambda-role

# Then for example

Resoureces:

  FunctionB:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: lambdas/
      Handler: app.event_handler_b
      Role: !Ref LambdaRoleArn

例如与映射

Mappings:

  Lambda:
     Role: 
       Value: arn:aws:iam::12345678:role/lambda-role

# Then for example

Resoureces:

  FunctionB:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: lambdas/
      Handler: app.event_handler_b
      Role: !FindInMap [Lambda, Role, Value]
© www.soinside.com 2019 - 2024. All rights reserved.