【发布时间】:2019-07-30 19:01:34
【问题描述】:
我在serverless.yml 中写了如下资源:
resources:
Resources:
RestApi :
Type : AWS::ApiGateway::RestApi
Properties :
Body : ${file(./swagger.yaml)}
LoginApiToInvokeLambda:
Type: AWS::Lambda::Permission
Properties:
FunctionName: login
Action: lambda:InvokeFunction
Principal: apigateway.amazonaws.com
当我 sls deploy 时,出现以下错误:
发生错误:LoginApiToInvokeLambda - 找不到函数:arn:aws:lambda:ap-northeast-1:xxxxxxxxxxxx:function:api-dev-login(服务:AWSLambda;状态代码:404;错误代码:ResourceNotFoundException
在最初的部署中,我认为权限是在创建 lambda 函数之前设置的。因此,我在 serverless.yml 中注释掉了 LoginApiToInvokeLambda。我再次sls deploy,它成功了。但是 ApiGateway 没有调用 lambda 的权限。之后我恢复了注释掉的部分和sls deploy。终于可以给ApiGateway Lambda调用的权限了。
有没有办法同时做到这一点?
【问题讨论】:
-
@John Rotenstein 谢谢!
标签: amazon-web-services aws-api-gateway serverless-framework serverless