GitHub Action
invoke-aws-lambda
This action allows you to synchronously invoke a Lambda function and get the response (if desired).
Key | Type | Required | Description |
---|---|---|---|
AWS_ACCESS_KEY_ID |
string |
Yes | Access Key ID |
AWS_SECRET_ACCESS_KEY |
string |
Yes | Secret Access Key |
AWS_SESSION_TOKEN |
string |
No | Session Token |
REGION |
string |
No | Default us-east-1 . Region where the Lambda function has been created. |
AWS Security Credentials reference
AWS Temporary Credentials reference
Key | Type | Required | Description |
---|---|---|---|
FunctionName |
string |
Yes | Name of the Lambda function to be invoked. |
InvocationType |
RequestResponse| Event| DryRun |
No | Default RequestResponse . See the AWS Javascript SDK docs for more info. |
LogType |
Tail|None |
No | Default None . Set to Tail to include the execution log in the response. |
Payload |
string |
No | JSON that you want to provide to your Lambda function as input. |
Qualifier |
string |
No | Version or alias of the function to be invoked. |
ClientContext |
string |
No | Base64-encoded data about the invoking client to pass to the function. |
For more details on the parameters accepted by Lambda.invoke()
, see the AWS Javascript SDK docs
This step will store the JSON response from the Lambda function invocation in outputs.response
, with the following properties:
Property | Type | Description |
---|---|---|
StatusCode |
integer |
HTTP status code - 200 if successful |
ExecutedVersion |
string |
Version or alias of function that was executed |
Payload |
string |
JSON returned by the function invocation, or error object |
LogResult |
string |
Base64-encoded last 4KB of execution log, if LogType was set to Tail |
FunctionError |
string |
If present, indicates that an error has occured, with more information in Payload |
Note that you will have to parse the output using the fromJSON
function before accessing individual properties.
See the Using Output example for more details.
This step invokes a Lambda function without regard for the invocation output:
- name: Invoke foobarFunction Lambda
uses: gagoar/invoke-aws-lambda@master # or the latest version.
with:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
FunctionName: foobarFunction
Payload: '{ "myParameter": false }'
These steps process the response payload by using step outputs:
- name: Invoke foobarFunction Lambda
id: foobar
uses: gagoar/invoke-aws-lambda@master # or the latest version.
with:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
FunctionName: foobarFunction
Payload: '{ "myParameter": false }'
- name: Store response payload to file
run: echo '${{ fromJSON(steps.foobar.outputs.response).Payload }}' > invocation-response.json
Notice the addition of the id
field to the invocation step.
For more information for Github Actions outputs, see their reference.
This step invokes a Lambda function with the someAlias
alias:
- name: Invoke foobarFunction Lambda
uses: gagoar/invoke-aws-lambda@master # or the latest version.
with:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
FunctionName: foobarFunction
Payload: '{ "myParameter": false }'
Qualifier: someAlias
Similarly, if we wanted to invoke version 53 in particular, we would use:
...
with:
...
Qualifier: 53
These steps process logs returned from the invocation:
- name: Invoke foobarFunction Lambda
id: foobar
uses: gagoar/invoke-aws-lambda@master # or the latest version.
with:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
FunctionName: foobarFunction
LogType: Tail
Payload: '{ "myParameter": false }'
- name: Store tail logs to file
run: echo "${{ fromJSON(steps.foobar.outputs.response).LogResult }}" > invocation-logs.json