如何在 SAM 模板中指定现有函数名称
How to specfiy existing FunctionName on SAM Template
我正在尝试使用 SAM 部署 AWS Lambda 函数。
我想做的是通过部署本地源代码来更新现有的 lambda 函数。
为了做到这一点,我在 template.yaml 中将现有的 lambda 函数名称指定为 'FunctionName',如下所示。
但是,'FunctionName' 只支持创建新功能,不支持更新现有功能。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname
是否有任何方法可以在 SAM 中指定函数名称以更新 lambda 函数?
[template.yaml]
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
HelloWorld:
Type: 'AWS::Serverless::Function'
Properties:
FunctionName: 'hello_world'
Description: ''
Handler: index.handler
MemorySize: 256
Role: 'arn:aws:iam::368834739507:role/lambda_basic_execution'
Runtime: nodejs6.10
Timeout: 120
使用 SAM (and/or CloudFormation),您无法更新现有资源。
SAM(和 CloudFormation)创建和管理自己的资源。模板中指定的所有资源都将在创建堆栈时创建。他们不能是 "taken over".
相反,您应该允许 SAM(或 CloudFormation)为您创建 Lambda 函数,然后更新用户以引用新函数。之后,您可以使用 SAM 更新您的代码。
我正在尝试使用 SAM 部署 AWS Lambda 函数。 我想做的是通过部署本地源代码来更新现有的 lambda 函数。
为了做到这一点,我在 template.yaml 中将现有的 lambda 函数名称指定为 'FunctionName',如下所示。 但是,'FunctionName' 只支持创建新功能,不支持更新现有功能。 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname
是否有任何方法可以在 SAM 中指定函数名称以更新 lambda 函数?
[template.yaml]
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
HelloWorld:
Type: 'AWS::Serverless::Function'
Properties:
FunctionName: 'hello_world'
Description: ''
Handler: index.handler
MemorySize: 256
Role: 'arn:aws:iam::368834739507:role/lambda_basic_execution'
Runtime: nodejs6.10
Timeout: 120
使用 SAM (and/or CloudFormation),您无法更新现有资源。
SAM(和 CloudFormation)创建和管理自己的资源。模板中指定的所有资源都将在创建堆栈时创建。他们不能是 "taken over".
相反,您应该允许 SAM(或 CloudFormation)为您创建 Lambda 函数,然后更新用户以引用新函数。之后,您可以使用 SAM 更新您的代码。