我错误地给出了AWS Lambda函数的错误名称。现在,我想改名。我从给定的stackoverflow问题中发现,最好的方法是创建一个新函数并将完全相同的代码复制到其中。 Is it possible to rename an AWS Lambda function?
我想这样做,但我只是担心数据丢失。由于我的lambda目前有2个SNS触发器,因为它不断地接收数据。所以,如果我停止这个lambda并创建一个新的lambda,那么我会丢失一些数据。此外,如果我在删除前一个lambda之前启动新的lambda,我会在我的数据存储区中输入两次。那么,有什么方法可以用来完成这项工作吗?
答案 0 :(得分:2)
正如@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重新分配到生产数据库,并从登台数据库推送更新进入你的生产数据库。查看导入/导出文档(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBPipeline.html)以查看可以执行数据迁移的一种方法。
答案 1 :(得分:0)
AWS Lambda函数有无重命名功能。
您可以尝试使creating an alias to a Lambda function同时允许两个名称同时运行。 (这通常在存在不同版本时使用。)