Amazon web services 是否可以在SAM模板中定义常量以使我的模板文件更易于维护?
我正在使用AWS SAM将AWS Lambda函数部署到AWS 我曾经在Globals部分定义过一次运行时,我想知道是否可以为AWS角色定义一个常量,由我的Lambdas角色承担:arn:AWS:iam::12345678:Role/lambda角色,该角色当前在每个函数的模板文件中重复 这是我的SAM模板:Amazon web services 是否可以在SAM模板中定义常量以使我的模板文件更易于维护?,amazon-web-services,aws-lambda,amazon-cloudformation,Amazon Web Services,Aws Lambda,Amazon Cloudformation,我正在使用AWS SAM将AWS Lambda函数部署到AWS 我曾经在Globals部分定义过一次运行时,我想知道是否可以为AWS角色定义一个常量,由我的Lambdas角色承担:arn:AWS:iam::12345678:Role/lambda角色,该角色当前在每个函数的模板文件中重复 这是我的SAM模板: AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Globals: Funct
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
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Globals:
Function:
Runtime: python3.7
Parameters:
role:
Type: String
Resources:
FunctionA:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambdas/
Handler: app.event_handler_a
Role: ${role}
FunctionB:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambdas/
Handler: app.event_handler_b
Role: ${role}
你可以用或来做那件事
例如,使用参数:
例如,对于映射:
映射的优点是在部署模板时不能修改它们。但是很明显,如果你想做到这一点,那么就应该使用参数。你可以使用或
例如,使用参数:
例如,对于映射:
映射的优点是在部署模板时不能修改它们。但显然,如果您希望能够做到这一点,那么应该使用参数。您可以在部署时使用参数并覆盖它们,或者使用引导部署将它们保存以供下次部署运行 检查此模板:
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
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Globals:
Function:
Runtime: python3.7
Parameters:
role:
Type: String
Resources:
FunctionA:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambdas/
Handler: app.event_handler_a
Role: ${role}
FunctionB:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambdas/
Handler: app.event_handler_b
Role: ${role}
如何部署:
sam部署-模板文件template.yaml-堆栈名称mystack-能力能力\u IAM-参数覆盖role=arn:aws:IAM::12345678:role/lambda role
或者,您可以使用-guided cli参数。检查以下AWS文件:
例如,在执行sam部署引导命令时,AWS sam
CLI会自动将所需参数添加到配置中
文件随后,您可以不带参数地执行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
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Globals:
Function:
Runtime: python3.7
Parameters:
role:
Type: String
Resources:
FunctionA:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambdas/
Handler: app.event_handler_a
Role: ${role}
FunctionB:
Type: AWS::Serverless::Function
Properties:
CodeUri: lambdas/
Handler: app.event_handler_b
Role: ${role}
如何部署:
sam部署-模板文件template.yaml-堆栈名称mystack-能力能力\u IAM-参数覆盖role=arn:aws:IAM::12345678:role/lambda role
或者,您可以使用-guided cli参数。检查以下AWS文件:
例如,在执行sam部署引导命令时,AWS sam
CLI会自动将所需参数添加到配置中
文件随后,您可以不带参数地执行sam部署,并且
这些值将从配置文件中检索