我使用sam deploy来部署lambda函数和API网关。它可以正常工作,但是在我通过AWS控制台手动删除lambda函数之后,它就不能工作了。我发现了以下错误:
"ResourceStatusReason": "Function not found:
arn:aws:lambda:ap-southeast-2:286334053171:function:polaroid (Service:
AWSLambdaInternal; Status Code: 404; Error Code: ResourceNotFoundException;
Request ID: b431cbfc-7772-11e9-8022-1b92fa2cfa9e)删除lambda并执行刷新部署的正确方法是什么?如果发生这种情况,如何强制SAM创建缺少的lambda函数?
我在模板yaml中的lambda看起来如下:
...
Resources:
PolaroidFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: test
CodeUri: ./lambdas
Handler: lib/index.fun
Runtime: nodejs8.10
Events:
polaroid:
Type: Api
Properties:
Path: /test
Method: post
...发布于 2020-12-21 20:17:03
我也有过类似的问题。在我的例子中,我删除了Lambda作为一个实验,同时尝试重置TRIM_HORIZON以使它在DynamoDB流中重新处理旧事件。
我找到了一个更简单的解决方案:
进入CloudFormation控制台并删除已部署的Stack.
在那之后,sam deploy再次正常工作。
发布于 2022-06-05 20:22:27
因此,正如在其他答案中所建议的那样,我从控制台手动删除了该函数。
我是从CDK部署堆栈的
解决方案
发布于 2021-07-20 16:49:31
如果您想避免删除堆栈并再次将其重新部署,或者避免对齐CloudFormation模板文件,那么也许您可以将AWS中的资源与模板文件对齐。
这意味着,如果删除了最初从模板文件中创建的某个Lambda (例如),只需在AWS ( GUI或aws )中手动创建相同的Lambda即可。现在再运行‘山姆部署’-你应该是对齐的。
现在,从模板文件中删除Lambda定义并重新部署--应该删除Lambda并对齐CloudFormation。
https://stackoverflow.com/questions/56159381
复制相似问题