putFunctionRecursionConfig method
- required String functionName,
- required RecursiveLoop recursiveLoop,
Sets your function's recursive loop detection configuration.
When you configure a Lambda function to output to the same service or resource that invokes the function, it's possible to create an infinite recursive loop. For example, a Lambda function might write a message to an Amazon Simple Queue Service (Amazon SQS) queue, which then invokes the same function. This invocation causes the function to write another message to the queue, which in turn invokes the function again.
Lambda can detect certain types of recursive loops shortly after they
occur. When Lambda detects a recursive loop and your function's recursive
loop detection configuration is set to Terminate, it stops
your function being invoked and notifies you.
May throw InvalidParameterValueException.
May throw ResourceConflictException.
May throw ResourceNotFoundException.
May throw ServiceException.
May throw TooManyRequestsException.
Parameter functionName :
The name or ARN of the Lambda function.
Name formats
-
Function name –
my-function. -
Function ARN –
arn:aws:lambda:us-west-2:123456789012:function:my-function. -
Partial ARN –
123456789012:function:my-function.
Parameter recursiveLoop :
If you set your function's recursive loop detection configuration to
Allow, Lambda doesn't take any action when it detects your
function being invoked as part of a recursive loop. We recommend that you
only use this setting if your design intentionally uses a Lambda function
to write data back to the same Amazon Web Services resource that invokes
it.
If you set your function's recursive loop detection configuration to
Terminate, Lambda stops your function being invoked and
notifies you when it detects your function being invoked as part of a
recursive loop.
By default, Lambda sets your function's configuration to
Terminate.
Implementation
Future<PutFunctionRecursionConfigResponse> putFunctionRecursionConfig({
required String functionName,
required RecursiveLoop recursiveLoop,
}) async {
final $payload = <String, dynamic>{
'RecursiveLoop': recursiveLoop.value,
};
final response = await _protocol.send(
payload: $payload,
method: 'PUT',
requestUri:
'/2024-08-31/functions/${Uri.encodeComponent(functionName)}/recursion-config',
exceptionFnMap: _exceptionFns,
);
return PutFunctionRecursionConfigResponse.fromJson(response);
}