2017-07-20 116 views
0

我错误地给了AWS Lambda函数错误的名称。现在,我想改变它的名字。我从给定的stackoverflow问题中发现,最好的方法是创建一个新函数并将完全相同的代码复制到它中。 Is it possible to rename an AWS Lambda function?AWS Lambda重命名函数

我想这样做,但我只是担心数据丢失。由于我的lambda目前有2个SNS触发器,它不断接收数据。所以,如果我停止这个lambda并创建新的lambda,那么在那段时间内我会丢失一些数据。另外,如果我在删除前一个新的lambda之前启动新的lambda,我会在我的数据存储中输入两次。那么,有什么方法可以用来完成这个任务吗?

回答

1

正如@John Rotenstein所说,不可能重命名AWS Lambda。如果您查看Lambda的文档(http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html),您将看到更新FunctionName需要更换实体。

如果指定名称,则无法执行需要更换此资源的更新。您可以执行不需要或有一些中断的更新。如果您必须替换资源,请指定一个新名称。

如果您正在使用更复杂的系统工作,因为它似乎是由于您的笔记SNS触发,我会强烈建议你看看CloudFormation(https://aws.amazon.com/cloudformation/),它使用代码来管理部署的服务。这不仅具有允许更轻松更新的好处,而且还可以实现代码所固有的其他有趣的功能,例如与VCS集成。

作为执行此迁移时的数据丢失防护策略,您可以创建新的Lambda并将其指向暂存数据库,删除旧的Lambda,将新的Lambda重新命名为生产数据库,并从暂存中推送更新数据库导入生产数据库。查看导入/导出文档()以查看可能执行数据迁移的一种方法。

0

对于AWS Lambda函数,有无重命名函数

您可以改为尝试creating an alias to a Lambda function,这样可以使两个名称同时工作。 (当存在不同版本时,通常会使用这个选项。)