- 新しい順
- 投票が多い順
- コメントが多い順
I don't think there are any events detected by EventBridge when a Lambda function completes by default.
So I think we can edit the code to use "put_events" to issue a custom event when the Lambda function terminates.
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/events/client/put_events.html
For example, the following code would do it.
import boto3
import json
client = boto3.client('events')
detail = {
'status': 'Success'
}
response = events.put_events(
Entries=[
{
'Source': 'lambda.amazonaws.com',
'DetailType': 'FunctionEnd',
'Detail': json.dumps(detail),
'EventBusName': 'default'
}
]
)
In addition, I think we can detect this event by setting the following event pattern to catch this event in EventBridge.
{
"source": ["lambda.amazonaws.com"],
"detail-type": ["FunctionEnd"],
"detail": {
"status": ["Success"]
}
}
There are couple of ways you can do this.
- You can publish the cloudwatch events (event bridge) from your lambda using this example - https://serverlessland.com/patterns/lambda-eventbridge
- You can use step function to orchestrate your workflow. First step invoke your lambda for password rotation , if it is success then publish cloudwatch events (event bridge).
- You can directly publish your events to SNS as well using this example - https://serverlessland.com/patterns/lambda-sns
If your function is invoked asynchronously, you can use Lambda Destinations to send the completion event to SNS, EventBridge, SQS or another Lambda function. If your function is invoked synchronously, you will need to do it yourself in the function itself.