我正在使用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
您可以使用Parameters或Mappings。
例如带有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]