UNPKG

@aws-sdk/client-lambda

Version:

AWS SDK for JavaScript Lambda Client for Node.js, Browser and React Native

314 lines (313 loc) 15.8 kB
import { Command as $Command } from "@smithy/smithy-client"; import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { LambdaClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LambdaClient"; import { EventSourceMappingConfiguration, UpdateEventSourceMappingRequest } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link UpdateEventSourceMappingCommand}. */ export interface UpdateEventSourceMappingCommandInput extends UpdateEventSourceMappingRequest { } /** * @public * * The output of {@link UpdateEventSourceMappingCommand}. */ export interface UpdateEventSourceMappingCommandOutput extends EventSourceMappingConfiguration, __MetadataBearer { } declare const UpdateEventSourceMappingCommand_base: { new (input: UpdateEventSourceMappingCommandInput): import("@smithy/smithy-client").CommandImpl<UpdateEventSourceMappingCommandInput, UpdateEventSourceMappingCommandOutput, LambdaClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>; new (input: UpdateEventSourceMappingCommandInput): import("@smithy/smithy-client").CommandImpl<UpdateEventSourceMappingCommandInput, UpdateEventSourceMappingCommandOutput, LambdaClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** * <p>Updates an event source mapping. You can change the function that Lambda invokes, or pause invocation and resume later from the same location.</p> <p>For details about how to configure different event sources, see the following topics. </p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping"> Amazon DynamoDB Streams</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping"> Amazon Kinesis</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource"> Amazon SQS</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping"> Amazon MQ and RabbitMQ</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html"> Amazon MSK</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html"> Apache Kafka</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html"> Amazon DocumentDB</a> </p> </li> </ul> <p>The following error handling options are available only for DynamoDB and Kinesis event sources:</p> <ul> <li> <p> <code>BisectBatchOnFunctionError</code> – If the function returns an error, split the batch in two and retry.</p> </li> <li> <p> <code>MaximumRecordAgeInSeconds</code> – Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires</p> </li> <li> <p> <code>MaximumRetryAttempts</code> – Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.</p> </li> <li> <p> <code>ParallelizationFactor</code> – Process multiple batches from each shard concurrently.</p> </li> </ul> <p>For stream sources (DynamoDB, Kinesis, Amazon MSK, and self-managed Apache Kafka), the following option is also available:</p> <ul> <li> <p> <code>OnFailure</code> – Send discarded records to an Amazon SQS queue, Amazon SNS topic, or Amazon S3 bucket. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations">Adding a destination</a>.</p> </li> </ul> <p>For information about which configuration parameters apply to each event source, see the following topics.</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params"> Amazon DynamoDB Streams</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params"> Amazon Kinesis</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params"> Amazon SQS</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params"> Amazon MQ and RabbitMQ</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms"> Amazon MSK</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms"> Apache Kafka</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html#docdb-configuration"> Amazon DocumentDB</a> </p> </li> </ul> * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { LambdaClient, UpdateEventSourceMappingCommand } from "@aws-sdk/client-lambda"; // ES Modules import * // const { LambdaClient, UpdateEventSourceMappingCommand } = require("@aws-sdk/client-lambda"); // CommonJS import * const client = new LambdaClient(config); * const input = { // UpdateEventSourceMappingRequest * UUID: "STRING_VALUE", // required * FunctionName: "STRING_VALUE", * Enabled: true || false, * BatchSize: Number("int"), * FilterCriteria: { // FilterCriteria * Filters: [ // FilterList * { // Filter * Pattern: "STRING_VALUE", * }, * ], * }, * MaximumBatchingWindowInSeconds: Number("int"), * DestinationConfig: { // DestinationConfig * OnSuccess: { // OnSuccess * Destination: "STRING_VALUE", * }, * OnFailure: { // OnFailure * Destination: "STRING_VALUE", * }, * }, * MaximumRecordAgeInSeconds: Number("int"), * BisectBatchOnFunctionError: true || false, * MaximumRetryAttempts: Number("int"), * ParallelizationFactor: Number("int"), * SourceAccessConfigurations: [ // SourceAccessConfigurations * { // SourceAccessConfiguration * Type: "BASIC_AUTH" || "VPC_SUBNET" || "VPC_SECURITY_GROUP" || "SASL_SCRAM_512_AUTH" || "SASL_SCRAM_256_AUTH" || "VIRTUAL_HOST" || "CLIENT_CERTIFICATE_TLS_AUTH" || "SERVER_ROOT_CA_CERTIFICATE", * URI: "STRING_VALUE", * }, * ], * TumblingWindowInSeconds: Number("int"), * FunctionResponseTypes: [ // FunctionResponseTypeList * "ReportBatchItemFailures", * ], * ScalingConfig: { // ScalingConfig * MaximumConcurrency: Number("int"), * }, * AmazonManagedKafkaEventSourceConfig: { // AmazonManagedKafkaEventSourceConfig * ConsumerGroupId: "STRING_VALUE", * SchemaRegistryConfig: { // KafkaSchemaRegistryConfig * SchemaRegistryURI: "STRING_VALUE", * EventRecordFormat: "JSON" || "SOURCE", * AccessConfigs: [ // KafkaSchemaRegistryAccessConfigList * { // KafkaSchemaRegistryAccessConfig * Type: "BASIC_AUTH" || "CLIENT_CERTIFICATE_TLS_AUTH" || "SERVER_ROOT_CA_CERTIFICATE", * URI: "STRING_VALUE", * }, * ], * SchemaValidationConfigs: [ // KafkaSchemaValidationConfigList * { // KafkaSchemaValidationConfig * Attribute: "KEY" || "VALUE", * }, * ], * }, * }, * SelfManagedKafkaEventSourceConfig: { // SelfManagedKafkaEventSourceConfig * ConsumerGroupId: "STRING_VALUE", * SchemaRegistryConfig: { * SchemaRegistryURI: "STRING_VALUE", * EventRecordFormat: "JSON" || "SOURCE", * AccessConfigs: [ * { * Type: "BASIC_AUTH" || "CLIENT_CERTIFICATE_TLS_AUTH" || "SERVER_ROOT_CA_CERTIFICATE", * URI: "STRING_VALUE", * }, * ], * SchemaValidationConfigs: [ * { * Attribute: "KEY" || "VALUE", * }, * ], * }, * }, * DocumentDBEventSourceConfig: { // DocumentDBEventSourceConfig * DatabaseName: "STRING_VALUE", * CollectionName: "STRING_VALUE", * FullDocument: "UpdateLookup" || "Default", * }, * KMSKeyArn: "STRING_VALUE", * MetricsConfig: { // EventSourceMappingMetricsConfig * Metrics: [ // EventSourceMappingMetricList * "EventCount", * ], * }, * ProvisionedPollerConfig: { // ProvisionedPollerConfig * MinimumPollers: Number("int"), * MaximumPollers: Number("int"), * }, * }; * const command = new UpdateEventSourceMappingCommand(input); * const response = await client.send(command); * // { // EventSourceMappingConfiguration * // UUID: "STRING_VALUE", * // StartingPosition: "TRIM_HORIZON" || "LATEST" || "AT_TIMESTAMP", * // StartingPositionTimestamp: new Date("TIMESTAMP"), * // BatchSize: Number("int"), * // MaximumBatchingWindowInSeconds: Number("int"), * // ParallelizationFactor: Number("int"), * // EventSourceArn: "STRING_VALUE", * // FilterCriteria: { // FilterCriteria * // Filters: [ // FilterList * // { // Filter * // Pattern: "STRING_VALUE", * // }, * // ], * // }, * // FunctionArn: "STRING_VALUE", * // LastModified: new Date("TIMESTAMP"), * // LastProcessingResult: "STRING_VALUE", * // State: "STRING_VALUE", * // StateTransitionReason: "STRING_VALUE", * // DestinationConfig: { // DestinationConfig * // OnSuccess: { // OnSuccess * // Destination: "STRING_VALUE", * // }, * // OnFailure: { // OnFailure * // Destination: "STRING_VALUE", * // }, * // }, * // Topics: [ // Topics * // "STRING_VALUE", * // ], * // Queues: [ // Queues * // "STRING_VALUE", * // ], * // SourceAccessConfigurations: [ // SourceAccessConfigurations * // { // SourceAccessConfiguration * // Type: "BASIC_AUTH" || "VPC_SUBNET" || "VPC_SECURITY_GROUP" || "SASL_SCRAM_512_AUTH" || "SASL_SCRAM_256_AUTH" || "VIRTUAL_HOST" || "CLIENT_CERTIFICATE_TLS_AUTH" || "SERVER_ROOT_CA_CERTIFICATE", * // URI: "STRING_VALUE", * // }, * // ], * // SelfManagedEventSource: { // SelfManagedEventSource * // Endpoints: { // Endpoints * // "<keys>": [ // EndpointLists * // "STRING_VALUE", * // ], * // }, * // }, * // MaximumRecordAgeInSeconds: Number("int"), * // BisectBatchOnFunctionError: true || false, * // MaximumRetryAttempts: Number("int"), * // TumblingWindowInSeconds: Number("int"), * // FunctionResponseTypes: [ // FunctionResponseTypeList * // "ReportBatchItemFailures", * // ], * // AmazonManagedKafkaEventSourceConfig: { // AmazonManagedKafkaEventSourceConfig * // ConsumerGroupId: "STRING_VALUE", * // SchemaRegistryConfig: { // KafkaSchemaRegistryConfig * // SchemaRegistryURI: "STRING_VALUE", * // EventRecordFormat: "JSON" || "SOURCE", * // AccessConfigs: [ // KafkaSchemaRegistryAccessConfigList * // { // KafkaSchemaRegistryAccessConfig * // Type: "BASIC_AUTH" || "CLIENT_CERTIFICATE_TLS_AUTH" || "SERVER_ROOT_CA_CERTIFICATE", * // URI: "STRING_VALUE", * // }, * // ], * // SchemaValidationConfigs: [ // KafkaSchemaValidationConfigList * // { // KafkaSchemaValidationConfig * // Attribute: "KEY" || "VALUE", * // }, * // ], * // }, * // }, * // SelfManagedKafkaEventSourceConfig: { // SelfManagedKafkaEventSourceConfig * // ConsumerGroupId: "STRING_VALUE", * // SchemaRegistryConfig: { * // SchemaRegistryURI: "STRING_VALUE", * // EventRecordFormat: "JSON" || "SOURCE", * // AccessConfigs: [ * // { * // Type: "BASIC_AUTH" || "CLIENT_CERTIFICATE_TLS_AUTH" || "SERVER_ROOT_CA_CERTIFICATE", * // URI: "STRING_VALUE", * // }, * // ], * // SchemaValidationConfigs: [ * // { * // Attribute: "KEY" || "VALUE", * // }, * // ], * // }, * // }, * // ScalingConfig: { // ScalingConfig * // MaximumConcurrency: Number("int"), * // }, * // DocumentDBEventSourceConfig: { // DocumentDBEventSourceConfig * // DatabaseName: "STRING_VALUE", * // CollectionName: "STRING_VALUE", * // FullDocument: "UpdateLookup" || "Default", * // }, * // KMSKeyArn: "STRING_VALUE", * // FilterCriteriaError: { // FilterCriteriaError * // ErrorCode: "STRING_VALUE", * // Message: "STRING_VALUE", * // }, * // EventSourceMappingArn: "STRING_VALUE", * // MetricsConfig: { // EventSourceMappingMetricsConfig * // Metrics: [ // EventSourceMappingMetricList * // "EventCount", * // ], * // }, * // ProvisionedPollerConfig: { // ProvisionedPollerConfig * // MinimumPollers: Number("int"), * // MaximumPollers: Number("int"), * // }, * // }; * * ``` * * @param UpdateEventSourceMappingCommandInput - {@link UpdateEventSourceMappingCommandInput} * @returns {@link UpdateEventSourceMappingCommandOutput} * @see {@link UpdateEventSourceMappingCommandInput} for command's `input` shape. * @see {@link UpdateEventSourceMappingCommandOutput} for command's `response` shape. * @see {@link LambdaClientResolvedConfig | config} for LambdaClient's `config` shape. * * @throws {@link InvalidParameterValueException} (client fault) * <p>One of the parameters in the request is not valid.</p> * * @throws {@link ResourceConflictException} (client fault) * <p>The resource already exists, or another operation is in progress.</p> * * @throws {@link ResourceInUseException} (client fault) * <p>The operation conflicts with the resource's availability. For example, you tried to update an event source mapping in the CREATING state, or you tried to delete an event source mapping currently UPDATING.</p> * * @throws {@link ResourceNotFoundException} (client fault) * <p>The resource specified in the request does not exist.</p> * * @throws {@link ServiceException} (server fault) * <p>The Lambda service encountered an internal error.</p> * * @throws {@link TooManyRequestsException} (client fault) * <p>The request throughput limit was exceeded. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests">Lambda quotas</a>.</p> * * @throws {@link LambdaServiceException} * <p>Base exception class for all service exceptions from Lambda service.</p> * * * @example To update a Lambda function event source mapping * ```javascript * // This operation updates a Lambda function event source mapping * const input = { * BatchSize: 123, * Enabled: true, * FunctionName: "myFunction", * UUID: "1234xCy789012" * }; * const command = new UpdateEventSourceMappingCommand(input); * const response = await client.send(command); * /* response is * { * BatchSize: 123, * EventSourceArn: "arn:aws:s3:::examplebucket/*", * FunctionArn: "arn:aws:lambda:us-west-2:123456789012:function:myFunction", * LastModified: "2016-11-21T19:49:20.006Z", * LastProcessingResult: "", * State: "", * StateTransitionReason: "", * UUID: "1234xCy789012" * } * *\/ * ``` * * @public */ export declare class UpdateEventSourceMappingCommand extends UpdateEventSourceMappingCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: UpdateEventSourceMappingRequest; output: EventSourceMappingConfiguration; }; sdk: { input: UpdateEventSourceMappingCommandInput; output: UpdateEventSourceMappingCommandOutput; }; }; }