feat: Support all formats of function name in invoke #8295
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.
Fixes #8289
Which issue(s) does this change fix?
#8289
Why is this change necessary?
The lambda invoke API supports multiple different formats for the function name parameter. However, SAM only supports matching the function name directly as it exists in the provided SAM template.
How does it address the issue?
This change updates SAM so that we support more flexible function name arguments. Now, we normalize the provided function name to be just the function name by extracting it from the full or partial ARN, and/or stripping the version provided.
Now, when invoking a function locally, we first normalize the provided function name field to extract just the function name.
Testing:
I have a SAM template which has a function "HelloWorld". I tested by invoking different variations that are supported of the function name:
I also updated the error handling around invalid function names to match what the lambda service does:
What side effects does this change have?
None.
Mandatory Checklist
PRs will only be reviewed after checklist is complete
make pr
passesmake update-reproducible-reqs
if dependencies were changedBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.