UNPKG

@aws-sdk/client-lambda

Version:

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

323 lines (322 loc) 13.5 kB
import { Command as $Command } from "@smithy/smithy-client"; import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { LambdaClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../LambdaClient"; import { CreateEventSourceMappingRequest, EventSourceMappingConfiguration } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link CreateEventSourceMappingCommand}. */ export interface CreateEventSourceMappingCommandInput extends CreateEventSourceMappingRequest { } /** * @public * * The output of {@link CreateEventSourceMappingCommand}. */ export interface CreateEventSourceMappingCommandOutput extends EventSourceMappingConfiguration, __MetadataBearer { } declare const CreateEventSourceMappingCommand_base: { new (input: CreateEventSourceMappingCommandInput): import("@smithy/smithy-client").CommandImpl<CreateEventSourceMappingCommandInput, CreateEventSourceMappingCommandOutput, LambdaClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>; new (__0_0: CreateEventSourceMappingCommandInput): import("@smithy/smithy-client").CommandImpl<CreateEventSourceMappingCommandInput, CreateEventSourceMappingCommandOutput, LambdaClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes>; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** * <p>Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.</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 stream sources (DynamoDB and Kinesis):</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>DestinationConfig</code> – Send discarded records to an Amazon SQS queue or Amazon SNS topic.</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 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, CreateEventSourceMappingCommand } from "@aws-sdk/client-lambda"; // ES Modules import * // const { LambdaClient, CreateEventSourceMappingCommand } = require("@aws-sdk/client-lambda"); // CommonJS import * const client = new LambdaClient(config); * const input = { // CreateEventSourceMappingRequest * EventSourceArn: "STRING_VALUE", * FunctionName: "STRING_VALUE", // required * Enabled: true || false, * BatchSize: Number("int"), * FilterCriteria: { // FilterCriteria * Filters: [ // FilterList * { // Filter * Pattern: "STRING_VALUE", * }, * ], * }, * MaximumBatchingWindowInSeconds: Number("int"), * ParallelizationFactor: Number("int"), * StartingPosition: "TRIM_HORIZON" || "LATEST" || "AT_TIMESTAMP", * StartingPositionTimestamp: new Date("TIMESTAMP"), * DestinationConfig: { // DestinationConfig * OnSuccess: { // OnSuccess * Destination: "STRING_VALUE", * }, * OnFailure: { // OnFailure * Destination: "STRING_VALUE", * }, * }, * MaximumRecordAgeInSeconds: Number("int"), * BisectBatchOnFunctionError: true || false, * MaximumRetryAttempts: Number("int"), * TumblingWindowInSeconds: Number("int"), * 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", * ], * }, * }, * FunctionResponseTypes: [ // FunctionResponseTypeList * "ReportBatchItemFailures", * ], * AmazonManagedKafkaEventSourceConfig: { // AmazonManagedKafkaEventSourceConfig * ConsumerGroupId: "STRING_VALUE", * }, * SelfManagedKafkaEventSourceConfig: { // SelfManagedKafkaEventSourceConfig * ConsumerGroupId: "STRING_VALUE", * }, * ScalingConfig: { // ScalingConfig * MaximumConcurrency: Number("int"), * }, * DocumentDBEventSourceConfig: { // DocumentDBEventSourceConfig * DatabaseName: "STRING_VALUE", * CollectionName: "STRING_VALUE", * FullDocument: "UpdateLookup" || "Default", * }, * KMSKeyArn: "STRING_VALUE", * }; * const command = new CreateEventSourceMappingCommand(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", * // }, * // SelfManagedKafkaEventSourceConfig: { // SelfManagedKafkaEventSourceConfig * // ConsumerGroupId: "STRING_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", * // }, * // }; * * ``` * * @param CreateEventSourceMappingCommandInput - {@link CreateEventSourceMappingCommandInput} * @returns {@link CreateEventSourceMappingCommandOutput} * @see {@link CreateEventSourceMappingCommandInput} for command's `input` shape. * @see {@link CreateEventSourceMappingCommandOutput} 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 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> * * @public */ export declare class CreateEventSourceMappingCommand extends CreateEventSourceMappingCommand_base { }