无服务器部署-找不到功能

时间:2019-10-14 19:11:48

标签: amazon-web-services aws-lambda serverless-framework

我正在尝试通过无服务器CLI部署无服务器功能,并且出现以下错误:

  

发生错误:GenerateDownloadLinkLambdaFunction-函数不存在   找到:

奇怪的是,我已经将此功能部署到了另一个阶段qa,并且也很好地部署了,但是对于dev来说,它只是抛出了上面的错误。

如果我尝试从AWS控制台手动创建该功能并进行部署,则Lambda功能菜单会显示该功能已在X秒钟前部署,但是它不显示我在{{1}中拥有的任何设置}文件保存在我的计算机上。

值得注意的是,我已经设法在serverless.yml阶段部署了此功能,但是我不小心删除了它。从那以后,它拒绝重新部署。

关于我做错了什么,我一直在撞墙,但什么也没发现,以前有人遇到过Serverless的类似问题吗?

4 个答案:

答案 0 :(得分:3)

我遇到了无服务器问题。此问题是由无服务器如何处理,跟踪和部署功能引起的。删除该功能后,您实际上可以手动更改应用程序的状态,并且实际上是不同步的。

要解决此问题,请注释掉拒绝部署的功能,然后运行sls deploy。完成后,取消注释该功能,然后再次sls deploy。这次应该部署您的功能。

答案 1 :(得分:3)

使用 sls remove 从堆栈中删除所有内容,然后运行 ​​sls deploy

答案 2 :(得分:0)

我有同样的问题。不记得是因为我更改了函数名称还是因为我添加了

  apiGateway:
    shouldStartNameWithService: true
在提供者部分

到serverless.yml。 (我这样做是因为我想切换到the new API gateway naming

Serverless仍在跟踪旧名称,因此为了重置此名称并能够再次部署,我执行了以下3个步骤:

  1. 删除了Serverless在S3中创建的存储桶;
  2. 删除了无服务器在CloudFormation中创建的堆栈;
  3. 删除了Serverless在项目的根文件夹中创建的.serverless文件夹。

此后,serverless deploy命令再次起作用。

答案 3 :(得分:0)

在 AWS 控制台顶部的菜单上检查您的区域过滤器。

确保它与您在 serverless.yml 中部署到的区域相同:

provider:
  name: aws
  runtime: nodejs12.x
  region: us-east-1

enter image description here

相关问题