APIGW: add validation for AWS ARN in PutIntegration #12324
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
We've got a report from a user with an unhandled error in the invocation logic:
This is probably because the Integration URI passed was directly a Lambda ARN, and it needs to be an API Gateway invocation ARN:
Correct format:
arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:HelloWorld/invocations
Incorrect format:
arn:aws:lambda:us-east-1:123456789012:function:HelloWorld
This PR implements a bit of validation to avoid this.
Also had to move a bit of validation already done in moto in the provider just to keep proper validation order (with
integrationHttpMethod
)Changes
PutIntegration