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. |
HTTP_TIMEOUT |
number |
No | Sets the socket to timeout after timeout milliseconds of inactivity on the socket. Defaults to two minutes (120000). See the AWS Javascript SDK docs |
MAX_RETRIES |
number |
No | Returns the maximum amount of retries to perform for a service request. By default this value is calculated by the specific service object that the request is being made to. AWS Javascript SDK docs |
SUCCEED_ON_FUNCTION_FAILURE |
boolean |
No | Set to true if this action should succeed when the Lambda function executed returns an error |
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
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
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
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
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
You can also use OpenID Credentials via aws-actions/configure-aws-credentials
:
- name: Assume AWS role
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: the_arn_of_the_role_you_want_to_assume
aws-region: eu-west-1
- name: Invoke the Lambda
uses: gagoar/invoke-aws-lambda@master
with:
AWS_ACCESS_KEY_ID: ${{env.AWS_ACCESS_KEY_ID}}
AWS_SECRET_ACCESS_KEY: ${{env.AWS_SECRET_ACCESS_KEY}}
AWS_SESSION_TOKEN: ${{env.AWS_SESSION_TOKEN}}
REGION: ${{env.AWS_REGION}}
FunctionName: foobarFunction
Payload: '{ "myParameter": false }'