I have been experiencing issues with the lambda execute permission not being in place when deploying a stack, or new function, for the first time. I've been resolving it manually within the API Gateway console.
I've finally had a closer look... the stack does create a permission, but it is with the suffix 'Stage'. In my case I am supplying a specific StageName to the AWS::Serverless::Api resource. Actually to be more accurate I have "StageName: !Ref Stage", where Stage is a parameter to the template. Judging by the line linked below this can't be resolved, and rather unhelpfully 'Stage' is used instead. Perhaps this should be 'AllStages'?
https://github.com/awslabs/serverless-application-model/blob/a3a6d5211ed06fd77bdeb649d7277d0cc7843f56/samtranslator/model/eventsources/push.py#L367
I have been experiencing issues with the lambda execute permission not being in place when deploying a stack, or new function, for the first time. I've been resolving it manually within the API Gateway console.
I've finally had a closer look... the stack does create a permission, but it is with the suffix 'Stage'. In my case I am supplying a specific StageName to the AWS::Serverless::Api resource. Actually to be more accurate I have "StageName: !Ref Stage", where Stage is a parameter to the template. Judging by the line linked below this can't be resolved, and rather unhelpfully 'Stage' is used instead. Perhaps this should be 'AllStages'?
https://github.com/awslabs/serverless-application-model/blob/a3a6d5211ed06fd77bdeb649d7277d0cc7843f56/samtranslator/model/eventsources/push.py#L367