diff --git a/AWSLambda/AWSLambdaModel.h b/AWSLambda/AWSLambdaModel.h index df3e23154c2..742fc437078 100644 --- a/AWSLambda/AWSLambdaModel.h +++ b/AWSLambda/AWSLambdaModel.h @@ -213,6 +213,10 @@ typedef NS_ENUM(NSInteger, AWSLambdaRuntime) { AWSLambdaRuntimeJava17, AWSLambdaRuntimeRuby32, AWSLambdaRuntimePython311, + AWSLambdaRuntimeNodejs20X, + AWSLambdaRuntimeProvidedAl2023, + AWSLambdaRuntimePython312, + AWSLambdaRuntimeJava21, }; typedef NS_ENUM(NSInteger, AWSLambdaSnapStartApplyOn) { @@ -1052,7 +1056,7 @@ typedef NS_ENUM(NSInteger, AWSLambdaUpdateRuntimeOn) { @property (nonatomic, strong) AWSLambdaEnvironment * _Nullable environment; /** -

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

+

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

*/ @property (nonatomic, strong) AWSLambdaEphemeralStorage * _Nullable ephemeralStorage; @@ -1481,7 +1485,7 @@ typedef NS_ENUM(NSInteger, AWSLambdaUpdateRuntimeOn) { @end /** -

The size of the function's /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

+

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

Required parameters: [Size] */ @interface AWSLambdaEphemeralStorage : AWSModel @@ -1780,7 +1784,7 @@ typedef NS_ENUM(NSInteger, AWSLambdaUpdateRuntimeOn) { @property (nonatomic, strong) AWSLambdaEnvironmentResponse * _Nullable environment; /** -

The size of the function’s /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

+

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

*/ @property (nonatomic, strong) AWSLambdaEphemeralStorage * _Nullable ephemeralStorage; @@ -4353,7 +4357,7 @@ typedef NS_ENUM(NSInteger, AWSLambdaUpdateRuntimeOn) { @property (nonatomic, strong) AWSLambdaEnvironment * _Nullable environment; /** -

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

+

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

*/ @property (nonatomic, strong) AWSLambdaEphemeralStorage * _Nullable ephemeralStorage; @@ -4544,6 +4548,11 @@ typedef NS_ENUM(NSInteger, AWSLambdaUpdateRuntimeOn) { @interface AWSLambdaVpcConfig : AWSModel +/** +

Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.

+ */ +@property (nonatomic, strong) NSNumber * _Nullable ipv6AllowedForDualStack; + /**

A list of VPC security group IDs.

*/ @@ -4562,6 +4571,11 @@ typedef NS_ENUM(NSInteger, AWSLambdaUpdateRuntimeOn) { @interface AWSLambdaVpcConfigResponse : AWSModel +/** +

Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.

+ */ +@property (nonatomic, strong) NSNumber * _Nullable ipv6AllowedForDualStack; + /**

A list of VPC security group IDs.

*/ diff --git a/AWSLambda/AWSLambdaModel.m b/AWSLambda/AWSLambdaModel.m index 81e148a87f8..1efbc76b538 100644 --- a/AWSLambda/AWSLambdaModel.m +++ b/AWSLambda/AWSLambdaModel.m @@ -648,6 +648,18 @@ + (NSValueTransformer *)runtimeJSONTransformer { if ([value caseInsensitiveCompare:@"python3.11"] == NSOrderedSame) { return @(AWSLambdaRuntimePython311); } + if ([value caseInsensitiveCompare:@"nodejs20.x"] == NSOrderedSame) { + return @(AWSLambdaRuntimeNodejs20X); + } + if ([value caseInsensitiveCompare:@"provided.al2023"] == NSOrderedSame) { + return @(AWSLambdaRuntimeProvidedAl2023); + } + if ([value caseInsensitiveCompare:@"python3.12"] == NSOrderedSame) { + return @(AWSLambdaRuntimePython312); + } + if ([value caseInsensitiveCompare:@"java21"] == NSOrderedSame) { + return @(AWSLambdaRuntimeJava21); + } return @(AWSLambdaRuntimeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { @@ -715,6 +727,14 @@ + (NSValueTransformer *)runtimeJSONTransformer { return @"ruby3.2"; case AWSLambdaRuntimePython311: return @"python3.11"; + case AWSLambdaRuntimeNodejs20X: + return @"nodejs20.x"; + case AWSLambdaRuntimeProvidedAl2023: + return @"provided.al2023"; + case AWSLambdaRuntimePython312: + return @"python3.12"; + case AWSLambdaRuntimeJava21: + return @"java21"; default: return nil; } @@ -1681,6 +1701,18 @@ + (NSValueTransformer *)runtimeJSONTransformer { if ([value caseInsensitiveCompare:@"python3.11"] == NSOrderedSame) { return @(AWSLambdaRuntimePython311); } + if ([value caseInsensitiveCompare:@"nodejs20.x"] == NSOrderedSame) { + return @(AWSLambdaRuntimeNodejs20X); + } + if ([value caseInsensitiveCompare:@"provided.al2023"] == NSOrderedSame) { + return @(AWSLambdaRuntimeProvidedAl2023); + } + if ([value caseInsensitiveCompare:@"python3.12"] == NSOrderedSame) { + return @(AWSLambdaRuntimePython312); + } + if ([value caseInsensitiveCompare:@"java21"] == NSOrderedSame) { + return @(AWSLambdaRuntimeJava21); + } return @(AWSLambdaRuntimeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { @@ -1748,6 +1780,14 @@ + (NSValueTransformer *)runtimeJSONTransformer { return @"ruby3.2"; case AWSLambdaRuntimePython311: return @"python3.11"; + case AWSLambdaRuntimeNodejs20X: + return @"nodejs20.x"; + case AWSLambdaRuntimeProvidedAl2023: + return @"provided.al2023"; + case AWSLambdaRuntimePython312: + return @"python3.12"; + case AWSLambdaRuntimeJava21: + return @"java21"; default: return nil; } @@ -3354,6 +3394,18 @@ + (NSValueTransformer *)compatibleRuntimeJSONTransformer { if ([value caseInsensitiveCompare:@"python3.11"] == NSOrderedSame) { return @(AWSLambdaRuntimePython311); } + if ([value caseInsensitiveCompare:@"nodejs20.x"] == NSOrderedSame) { + return @(AWSLambdaRuntimeNodejs20X); + } + if ([value caseInsensitiveCompare:@"provided.al2023"] == NSOrderedSame) { + return @(AWSLambdaRuntimeProvidedAl2023); + } + if ([value caseInsensitiveCompare:@"python3.12"] == NSOrderedSame) { + return @(AWSLambdaRuntimePython312); + } + if ([value caseInsensitiveCompare:@"java21"] == NSOrderedSame) { + return @(AWSLambdaRuntimeJava21); + } return @(AWSLambdaRuntimeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { @@ -3421,6 +3473,14 @@ + (NSValueTransformer *)compatibleRuntimeJSONTransformer { return @"ruby3.2"; case AWSLambdaRuntimePython311: return @"python3.11"; + case AWSLambdaRuntimeNodejs20X: + return @"nodejs20.x"; + case AWSLambdaRuntimeProvidedAl2023: + return @"provided.al2023"; + case AWSLambdaRuntimePython312: + return @"python3.12"; + case AWSLambdaRuntimeJava21: + return @"java21"; default: return nil; } @@ -3582,6 +3642,18 @@ + (NSValueTransformer *)compatibleRuntimeJSONTransformer { if ([value caseInsensitiveCompare:@"python3.11"] == NSOrderedSame) { return @(AWSLambdaRuntimePython311); } + if ([value caseInsensitiveCompare:@"nodejs20.x"] == NSOrderedSame) { + return @(AWSLambdaRuntimeNodejs20X); + } + if ([value caseInsensitiveCompare:@"provided.al2023"] == NSOrderedSame) { + return @(AWSLambdaRuntimeProvidedAl2023); + } + if ([value caseInsensitiveCompare:@"python3.12"] == NSOrderedSame) { + return @(AWSLambdaRuntimePython312); + } + if ([value caseInsensitiveCompare:@"java21"] == NSOrderedSame) { + return @(AWSLambdaRuntimeJava21); + } return @(AWSLambdaRuntimeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { @@ -3649,6 +3721,14 @@ + (NSValueTransformer *)compatibleRuntimeJSONTransformer { return @"ruby3.2"; case AWSLambdaRuntimePython311: return @"python3.11"; + case AWSLambdaRuntimeNodejs20X: + return @"nodejs20.x"; + case AWSLambdaRuntimeProvidedAl2023: + return @"provided.al2023"; + case AWSLambdaRuntimePython312: + return @"python3.12"; + case AWSLambdaRuntimeJava21: + return @"java21"; default: return nil; } @@ -4780,6 +4860,18 @@ + (NSValueTransformer *)runtimeJSONTransformer { if ([value caseInsensitiveCompare:@"python3.11"] == NSOrderedSame) { return @(AWSLambdaRuntimePython311); } + if ([value caseInsensitiveCompare:@"nodejs20.x"] == NSOrderedSame) { + return @(AWSLambdaRuntimeNodejs20X); + } + if ([value caseInsensitiveCompare:@"provided.al2023"] == NSOrderedSame) { + return @(AWSLambdaRuntimeProvidedAl2023); + } + if ([value caseInsensitiveCompare:@"python3.12"] == NSOrderedSame) { + return @(AWSLambdaRuntimePython312); + } + if ([value caseInsensitiveCompare:@"java21"] == NSOrderedSame) { + return @(AWSLambdaRuntimeJava21); + } return @(AWSLambdaRuntimeUnknown); } reverseBlock:^NSString *(NSNumber *value) { switch ([value integerValue]) { @@ -4847,6 +4939,14 @@ + (NSValueTransformer *)runtimeJSONTransformer { return @"ruby3.2"; case AWSLambdaRuntimePython311: return @"python3.11"; + case AWSLambdaRuntimeNodejs20X: + return @"nodejs20.x"; + case AWSLambdaRuntimeProvidedAl2023: + return @"provided.al2023"; + case AWSLambdaRuntimePython312: + return @"python3.12"; + case AWSLambdaRuntimeJava21: + return @"java21"; default: return nil; } @@ -5027,6 +5127,7 @@ + (BOOL)supportsSecureCoding { + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ + @"ipv6AllowedForDualStack" : @"Ipv6AllowedForDualStack", @"securityGroupIds" : @"SecurityGroupIds", @"subnetIds" : @"SubnetIds", }; @@ -5042,6 +5143,7 @@ + (BOOL)supportsSecureCoding { + (NSDictionary *)JSONKeyPathsByPropertyKey { return @{ + @"ipv6AllowedForDualStack" : @"Ipv6AllowedForDualStack", @"securityGroupIds" : @"SecurityGroupIds", @"subnetIds" : @"SubnetIds", @"vpcId" : @"VpcId", diff --git a/AWSLambda/AWSLambdaResources.m b/AWSLambda/AWSLambdaResources.m index 2634d39ada6..9b8467d0e5b 100644 --- a/AWSLambda/AWSLambdaResources.m +++ b/AWSLambda/AWSLambdaResources.m @@ -677,7 +677,7 @@ - (NSString *)definitionString { {\"shape\":\"ResourceNotReadyException\"},\ {\"shape\":\"RecursiveInvocationException\"}\ ],\ - \"documentation\":\"

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. To invoke a function asynchronously, set InvocationType to Event.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

\"\ + \"documentation\":\"

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. By default, Lambda invokes your function synchronously (i.e. theInvocationType is RequestResponse). To invoke a function asynchronously, set InvocationType to Event. Lambda passes the ClientContext object to your function for synchronous invocations only.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

\"\ },\ \"InvokeAsync\":{\ \"name\":\"InvokeAsync\",\ @@ -695,7 +695,7 @@ - (NSString *)definitionString { {\"shape\":\"InvalidRuntimeException\"},\ {\"shape\":\"ResourceConflictException\"}\ ],\ - \"documentation\":\"

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

\",\ + \"documentation\":\"

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

If you do use the InvokeAsync action, note that it doesn't support the use of X-Ray active tracing. Trace ID is not propagated to the function, even if X-Ray active tracing is turned on.

\",\ \"deprecated\":true\ },\ \"InvokeWithResponseStream\":{\ @@ -1975,7 +1975,7 @@ - (NSString *)definitionString { },\ \"EphemeralStorage\":{\ \"shape\":\"EphemeralStorage\",\ - \"documentation\":\"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

\"\ + \"documentation\":\"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

\"\ },\ \"SnapStart\":{\ \"shape\":\"SnapStart\",\ @@ -2448,7 +2448,7 @@ - (NSString *)definitionString { \"documentation\":\"

The size of the function's /tmp directory.

\"\ }\ },\ - \"documentation\":\"

The size of the function's /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

\"\ + \"documentation\":\"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

\"\ },\ \"EphemeralStorageSize\":{\ \"type\":\"integer\",\ @@ -2835,7 +2835,7 @@ - (NSString *)definitionString { },\ \"EphemeralStorage\":{\ \"shape\":\"EphemeralStorage\",\ - \"documentation\":\"

The size of the function’s /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

\"\ + \"documentation\":\"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

\"\ },\ \"SnapStart\":{\ \"shape\":\"SnapStartResponse\",\ @@ -4637,6 +4637,7 @@ - (NSString *)definitionString { \"type\":\"integer\",\ \"min\":0\ },\ + \"NullableBoolean\":{\"type\":\"boolean\"},\ \"OnFailure\":{\ \"type\":\"structure\",\ \"members\":{\ @@ -5288,7 +5289,11 @@ - (NSString *)definitionString { \"python3.10\",\ \"java17\",\ \"ruby3.2\",\ - \"python3.11\"\ + \"python3.11\",\ + \"nodejs20.x\",\ + \"provided.al2023\",\ + \"python3.12\",\ + \"java21\"\ ]\ },\ \"RuntimeVersionArn\":{\ @@ -5981,7 +5986,7 @@ - (NSString *)definitionString { },\ \"EphemeralStorage\":{\ \"shape\":\"EphemeralStorage\",\ - \"documentation\":\"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

\"\ + \"documentation\":\"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB. For more information, see Configuring ephemeral storage (console).

\"\ },\ \"SnapStart\":{\ \"shape\":\"SnapStart\",\ @@ -6113,6 +6118,10 @@ - (NSString *)definitionString { \"SecurityGroupIds\":{\ \"shape\":\"SecurityGroupIds\",\ \"documentation\":\"

A list of VPC security group IDs.

\"\ + },\ + \"Ipv6AllowedForDualStack\":{\ + \"shape\":\"NullableBoolean\",\ + \"documentation\":\"

Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.

\"\ }\ },\ \"documentation\":\"

The VPC security groups and subnets that are attached to a Lambda function. For more information, see Configuring a Lambda function to access resources in a VPC.

\"\ @@ -6131,6 +6140,10 @@ - (NSString *)definitionString { \"VpcId\":{\ \"shape\":\"VpcId\",\ \"documentation\":\"

The ID of the VPC.

\"\ + },\ + \"Ipv6AllowedForDualStack\":{\ + \"shape\":\"NullableBoolean\",\ + \"documentation\":\"

Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.

\"\ }\ },\ \"documentation\":\"

The VPC security groups and subnets that are attached to a Lambda function.

\"\ diff --git a/AWSLambda/AWSLambdaService.h b/AWSLambda/AWSLambdaService.h index a3939ebfe07..e9e7b0e5d4f 100644 --- a/AWSLambda/AWSLambdaService.h +++ b/AWSLambda/AWSLambdaService.h @@ -976,7 +976,7 @@ FOUNDATION_EXPORT NSString *const AWSLambdaSDKVersion; - (void)getRuntimeManagementConfig:(AWSLambdaGetRuntimeManagementConfigRequest *)request completionHandler:(void (^ _Nullable)(AWSLambdaGetRuntimeManagementConfigResponse * _Nullable response, NSError * _Nullable error))completionHandler; /** -

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. To invoke a function asynchronously, set InvocationType to Event.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

+

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. By default, Lambda invokes your function synchronously (i.e. theInvocationType is RequestResponse). To invoke a function asynchronously, set InvocationType to Event. Lambda passes the ClientContext object to your function for synchronous invocations only.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

@param request A container for the necessary parameters to execute the Invoke service method. @@ -988,7 +988,7 @@ FOUNDATION_EXPORT NSString *const AWSLambdaSDKVersion; - (AWSTask *)invoke:(AWSLambdaInvocationRequest *)request; /** -

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. To invoke a function asynchronously, set InvocationType to Event.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

+

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. By default, Lambda invokes your function synchronously (i.e. theInvocationType is RequestResponse). To invoke a function asynchronously, set InvocationType to Event. Lambda passes the ClientContext object to your function for synchronous invocations only.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

@param request A container for the necessary parameters to execute the Invoke service method. @param completionHandler The completion handler to call when the load request is complete. @@ -1001,7 +1001,7 @@ FOUNDATION_EXPORT NSString *const AWSLambdaSDKVersion; - (void)invoke:(AWSLambdaInvocationRequest *)request completionHandler:(void (^ _Nullable)(AWSLambdaInvocationResponse * _Nullable response, NSError * _Nullable error))completionHandler; /** -

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

+

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

If you do use the InvokeAsync action, note that it doesn't support the use of X-Ray active tracing. Trace ID is not propagated to the function, even if X-Ray active tracing is turned on.

@param request A container for the necessary parameters to execute the InvokeAsync service method. @@ -1013,7 +1013,7 @@ FOUNDATION_EXPORT NSString *const AWSLambdaSDKVersion; - (AWSTask *)invokeAsync:(AWSLambdaInvokeAsyncRequest *)request; /** -

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

+

For asynchronous function invocation, use Invoke.

Invokes a function asynchronously.

If you do use the InvokeAsync action, note that it doesn't support the use of X-Ray active tracing. Trace ID is not propagated to the function, even if X-Ray active tracing is turned on.

@param request A container for the necessary parameters to execute the InvokeAsync service method. @param completionHandler The completion handler to call when the load request is complete.