本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
UpdateEventSourceMapping
更新事件來源映射。您無法變更 AWS Lambda 調用的函數,或是暫停調用並稍後從相同位置繼續。
如需關於如何設定不同事件來源的詳細資訊,請參閱下列主題。
以下錯誤處理選項僅適用於串流來源 (DynamoDB 和 Kinesis):
- 
         BisectBatchOnFunctionError- 如果函數傳回錯誤,將批次分割為兩個並重試。
- 
         DestinationConfig- 將捨棄的記錄傳送到 Amazon SQS 佇列或 Amazon SNS 主題。
- 
         MaximumRecordAgeInSeconds- 捨棄超過指定存留期的記錄。預設值為無限 (-1)。設定為無限 (-1) 時,系統會重試失敗的記錄,直到記錄到期為止。
- 
         MaximumRetryAttempts- 在指定的重試次數之後捨棄記錄。預設值為無限 (-1)。設定為 infinite (-1) 時,系統會重試失敗的記錄,直到記錄到期為止。
- 
         ParallelizationFactor- 同時處理來自每個碎片的多個批次。
如需每個事件來源套用哪些組態參數的詳細資訊,請參閱下列主題。
請求語法
PUT /2015-03-31/event-source-mappings/UUID HTTP/1.1
Content-type: application/json
{
   "BatchSize": number,
   "BisectBatchOnFunctionError": boolean,
   "DestinationConfig": { 
      "OnFailure": { 
         "Destination": "string"
      },
      "OnSuccess": { 
         "Destination": "string"
      }
   },
   "DocumentDBEventSourceConfig": { 
      "CollectionName": "string",
      "DatabaseName": "string",
      "FullDocument": "string"
   },
   "Enabled": boolean,
   "FilterCriteria": { 
      "Filters": [ 
         { 
            "Pattern": "string"
         }
      ]
   },
   "FunctionName": "string",
   "FunctionResponseTypes": [ "string" ],
   "MaximumBatchingWindowInSeconds": number,
   "MaximumRecordAgeInSeconds": number,
   "MaximumRetryAttempts": number,
   "ParallelizationFactor": number,
   "ScalingConfig": { 
      "MaximumConcurrency": number
   },
   "SourceAccessConfigurations": [ 
      { 
         "Type": "string",
         "URI": "string"
      }
   ],
   "TumblingWindowInSeconds": number
}URI 請求參數
請求會使用下列 URI 參數。
- UUID
- 
               事件來源映射的識別符。 必要:是 
請求主體
請求接受採用 JSON 格式的下列資料。
- BatchSize
- 
               Lambda 從串流或佇列中提取並傳送至函數的每個批次中的記錄數目上限。Lambda 會將批次中的所有記錄以單一呼叫形式傳送至函數,直到達到同步調用的承載限制 (6 MB)。 - 
                     Amazon Kinesis - 預設值 100。上限為 10,000。 
- 
                     Amazon DynamoDB Streams - 預設值 100。上限為 10,000。 
- 
                     Amazon Simple Queue Service - 預設值 10。對於標準佇列,最大值為 10,000。對於 FIFO 隊列,最大值為 10。 
- 
                     Amazon Managed Streaming for Apache Kafka - 預設值 100。上限為 10,000。 
- 
                     自我管理型 Apache Kafka - 預設值 100。上限為 10,000。 
- 
                     Amazon MQ (ActiveMQ 和 RabbitMQ) - 預設值 100。上限為 10,000。 
- 
                     DocumentDB:預設為 100。上限為 10,000。 
 類型:整數 有效範圍:最小值為 1。最大值為 10000。 必要:否 
- 
                     
- BisectBatchOnFunctionError
- 
               (僅限 Kinesis 和 DynamoDB Streams) 如果函數傳回錯誤,將批次分割為兩個並重試。 類型:布林值 必要:否 
- DestinationConfig
- 
               (僅限 Kinesis、DynamoDB Streams、Amazon MSK 和自我管理的 Kafka) 指定在 Lambda 處理過後事件目的地的組態物件。 類型:DestinationConfig 物件 必要:否 
- DocumentDBEventSourceConfig
- 
               DocumentDB 事件來源的具體組態設定。 類型:DocumentDBEventSourceConfig 物件 必要:否 
- Enabled
- 
               當為 true 時,則事件來源映射處於作用中狀態。當為 false 時,Lambda 會暫停輪詢與調用。 預設:True 類型:布林值 必要:否 
- FilterCriteria
- 
               定義篩選條件標準的物件,用於決定 Lambda 是否應該處理事件。如需詳細資訊,請參閱 Lambda 事件篩選。 類型:FilterCriteria 物件 必要:否 
- FunctionName
- 
               Lambda 函數的名稱。 名稱格式- 
                     函數名稱 - MyFunction。
- 
                     函數 ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction。
- 
                     版本或別名 ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD。
- 
                     部分 ARN - 123456789012:function:MyFunction。
 長度限制條件僅會套用到完整的 ARN。若您僅指定函數名稱,則其長度限制為 64 個字元。 類型:字串 長度限制:長度下限為 1。長度上限為 140。 模式: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?必要:否 
- 
                     
- FunctionResponseTypes
- 
               (Kinesis、DynamoDB Streams 和 Amazon SQS) 套用至事件來源映射的目前回應類型列舉清單。 類型:字串陣列 陣列成員:項目數下限為 0。項目數上限為 1。 有效值: ReportBatchItemFailures必要:否 
- MaximumBatchingWindowInSeconds
- 
               Lambda 調用函數之前收集記錄所花費的最長時間 (以秒為單位)。您可以將 MaximumBatchingWindowInSeconds設定為從 0 秒到 300 秒之間的任意值,增量為秒。如果事件來源是串流和 Amazon SQS,預設批次間隔為 0 秒。如果事件來源是 Amazon MSK、自主管理 Apache Kafka 、Amazon MQ 以及 DocumentDB,則預設批次間隔為 500 毫秒。請注意,因為您只能以秒為增量變更 MaximumBatchingWindowInSeconds,所以預設批次間隔一旦變更後就無法再恢復到 500 毫秒的預設值。要恢復預設批次間隔,必須建立新的事件來源映射。相關設定:如果事件來源是串流和 Amazon SQS,將 BatchSize設定為大於 10 的值時,必須將MaximumBatchingWindowInSeconds至少設定為 1。類型:整數 有效範圍:最小值為 0。最大值為 300。 必要:否 
- MaximumRecordAgeInSeconds
- 
               (僅限 Kinesis 和 DynamoDB Streams) 捨棄超過指定存留期的記錄。預設值為無限 (-1)。 類型:整數 有效範圍:最小值為 -1。最大值為 604800。 必要:否 
- MaximumRetryAttempts
- 
               (僅限 Kinesis 和 DynamoDB Streams) 在指定的重試次數之後捨棄記錄。預設值為無限 (-1)。設定為 infinite (-1) 時,系統會重試失敗的記錄,直到記錄到期為止。 類型:整數 有效範圍:最小值為 -1。最大值為 10000。 必要:否 
- ParallelizationFactor
- 
               (僅限 Kinesis 和 DynamoDB Streams) 要從各個碎片同時處理的批次數。 類型:整數 有效範圍:最小值為 1。最大值為 10。 必要:否 
- ScalingConfig
- 
               (僅限 Amazon SQS) 事件來源的擴展組態。如需詳細資訊,請參閱設定 Amazon SQS 事件來源的並行上限。 類型:ScalingConfig 物件 必要:否 
- SourceAccessConfigurations
- 
               保護事件來源所需的身分驗證協定或 VPC 元件。 類型:SourceAccessConfiguration 物件陣列 陣列成員:項目數下限為 0。項目數上限為 22。 必要:否 
- TumblingWindowInSeconds
- 
               (僅限 Kinesis 和 DynamoDB Streams) DynamoDB 和 Kinesis Streams 事件來源處理時段的持續時間 (以秒為單位)。值為 0 秒代表沒有輪轉時段。 類型:整數 有效範圍:最小值為 0。最大值為 900。 必要:否 
回應語法
HTTP/1.1 202
Content-type: application/json
{
   "AmazonManagedKafkaEventSourceConfig": { 
      "ConsumerGroupId": "string"
   },
   "BatchSize": number,
   "BisectBatchOnFunctionError": boolean,
   "DestinationConfig": { 
      "OnFailure": { 
         "Destination": "string"
      },
      "OnSuccess": { 
         "Destination": "string"
      }
   },
   "DocumentDBEventSourceConfig": { 
      "CollectionName": "string",
      "DatabaseName": "string",
      "FullDocument": "string"
   },
   "EventSourceArn": "string",
   "FilterCriteria": { 
      "Filters": [ 
         { 
            "Pattern": "string"
         }
      ]
   },
   "FunctionArn": "string",
   "FunctionResponseTypes": [ "string" ],
   "LastModified": number,
   "LastProcessingResult": "string",
   "MaximumBatchingWindowInSeconds": number,
   "MaximumRecordAgeInSeconds": number,
   "MaximumRetryAttempts": number,
   "ParallelizationFactor": number,
   "Queues": [ "string" ],
   "ScalingConfig": { 
      "MaximumConcurrency": number
   },
   "SelfManagedEventSource": { 
      "Endpoints": { 
         "string" : [ "string" ]
      }
   },
   "SelfManagedKafkaEventSourceConfig": { 
      "ConsumerGroupId": "string"
   },
   "SourceAccessConfigurations": [ 
      { 
         "Type": "string",
         "URI": "string"
      }
   ],
   "StartingPosition": "string",
   "StartingPositionTimestamp": number,
   "State": "string",
   "StateTransitionReason": "string",
   "Topics": [ "string" ],
   "TumblingWindowInSeconds": number,
   "UUID": "string"
}回應元素
如果動作成功,則服務傳回 HTTP 202 回應。
服務會傳回下列 JSON 格式的資料。
- AmazonManagedKafkaEventSourceConfig
- 
               Amazon Managed Streaming for Apache Kafka (Amazon MSK) 事件來源的具體組態設定。 
- BatchSize
- 
               Lambda 從串流或佇列中提取並傳送至函數的每個批次中的記錄數目上限。Lambda 會將批次中的所有記錄以單一呼叫形式傳送至函數,直到達到同步調用的承載限制 (6 MB)。 預設值:依服務而異。對於 Amazon SQS,預設值為 10。對於所有其他服務,預設值為 100。 相關設定:當您將 BatchSize設定為大於 10 的值時,必須將MaximumBatchingWindowInSeconds至少設定為 1。類型:整數 有效範圍:最小值為 1。最大值為 10000。 
- BisectBatchOnFunctionError
- 
               (僅限 Kinesis 和 DynamoDB Streams) 如果函數傳回錯誤,將批次分割為兩個並重試。預設值為 false。 類型:布林值 
- DestinationConfig
- 
               (僅限 Kinesis、DynamoDB Streams、Amazon MSK 和自我管理的 Apache 卡夫卡事件來源) 一種組態物件,可在 Lambda 處理事件後指定事件的目的地。 類型:DestinationConfig 物件 
- DocumentDBEventSourceConfig
- 
               DocumentDB 事件來源的具體組態設定。 
- EventSourceArn
- 
               事件來源的 Amazon Resource Name (ARN)。 類型:String 模式: arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)
- FilterCriteria
- 
               定義篩選條件標準的物件,用於決定 Lambda 是否應該處理事件。如需詳細資訊,請參閱 Lambda 事件篩選。 類型:FilterCriteria 物件 
- FunctionArn
- 
               Lambda 函數的 ARN。 類型:String 模式: arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\d{1}:\d{12}:function:[a-zA-Z0-9-_]+(:(\$LATEST|[a-zA-Z0-9-_]+))?
- FunctionResponseTypes
- 
               (Kinesis、DynamoDB Streams 和 Amazon SQS) 套用至事件來源映射的目前回應類型列舉清單。 類型:字串陣列 陣列成員:項目數下限為 0。項目數上限為 1。 有效值: ReportBatchItemFailures
- LastModified
- 
               上次更新事件來源映射或其狀態變更的日期 (以 Unix 時間秒為單位)。 類型:Timestamp 
- LastProcessingResult
- 
               函數的最後一次 Lambda 調用的結果。 類型:字串 
- MaximumBatchingWindowInSeconds
- 
               Lambda 調用函數之前收集記錄所花費的最長時間 (以秒為單位)。您可以將 MaximumBatchingWindowInSeconds設定為從 0 秒到 300 秒之間的任意值,增量為秒。如果事件來源是串流和 Amazon SQS,預設批次間隔為 0 秒。如果事件來源是 Amazon MSK、自主管理 Apache Kafka 、Amazon MQ 以及 DocumentDB,則預設批次間隔為 500 毫秒。請注意,因為您只能以秒為增量變更 MaximumBatchingWindowInSeconds,所以預設批次間隔一旦變更後就無法再恢復到 500 毫秒的預設值。要恢復預設批次間隔,必須建立新的事件來源映射。相關設定:如果事件來源是串流和 Amazon SQS,將 BatchSize設定為大於 10 的值時,必須將MaximumBatchingWindowInSeconds至少設定為 1。類型:整數 有效範圍:最小值為 0。最大值為 300。 
- MaximumRecordAgeInSeconds
- 
               (僅限 Kinesis 和 DynamoDB Streams) 捨棄超過指定存留期的記錄。預設值為 -1,這會將最大存留期設定為無限。當值設定為無限時,Lambda 永遠不會捨棄舊記錄。 注意最大記錄保留期的最小有效值為 60 秒。雖然小於 60 且大於 -1 的值在參數的絕對範圍內,但不允許這些值 類型:整數 有效範圍:最小值為 -1。最大值為 604800。 
- MaximumRetryAttempts
- 
               (僅限 Kinesis 和 DynamoDB Streams) 在指定的重試次數之後捨棄記錄。預設值為 -1,這會將重試數上限設定為無限。如果 MaximumRetryAttempts 是無限的,Lambda 會重試失敗的記錄,直到事件來源中的記錄到期為止。 類型:整數 有效範圍:最小值為 -1。最大值為 10000。 
- ParallelizationFactor
- 
               (僅限 Kinesis 和 DynamoDB Streams) 要從每個碎片中同時處理的批次數。預設值為 1。 類型:整數 有效範圍:最小值為 1。最大值為 10。 
- Queues
- 
               (Amazon MQ) 要使用的 Amazon MQ 代理程式目的地佇列的名稱。 類型:字串陣列 陣列成員:固定項目數為 1。 長度限制:長度下限為 1。長度上限為 1000。 模式: [\s\S]*
- ScalingConfig
- 
               (僅限 Amazon SQS) 事件來源的擴展組態。如需詳細資訊,請參閱設定 Amazon SQS 事件來源的並行上限。 類型:ScalingConfig 物件 
- SelfManagedEventSource
- 
               用於事件來源的自我管理型 Apache Kafka 叢集。 類型:SelfManagedEventSource 物件 
- SelfManagedKafkaEventSourceConfig
- 
               用於自我管理的 Apache Kafka 事件來源的具體組態設定。 
- SourceAccessConfigurations
- 
               保護和定義事件來源的身分驗證協定、VPC 元件或虛擬主機。 類型:SourceAccessConfiguration 物件陣列 陣列成員:項目數下限為 0。項目數上限為 22。 
- StartingPosition
- 
               要從中開始讀取的串流位置。Amazon Kinesis 和 Amazon DynamoDB Stream 事件來源所必需。Amazon Kinesis 串流、Amazon DocumentDB、Amazon MSK 以及自我管理的 Apache Kafka 僅支援 AT_TIMESTAMP。類型:字串 有效值: TRIM_HORIZON | LATEST | AT_TIMESTAMP
- StartingPositionTimestamp
- 
               將 StartingPosition設定為AT_TIMESTAMP,這是開始讀取的時間 (以 Unix 時間秒為單位)。StartingPositionTimestamp不能為未來的時間。類型:Timestamp 
- State
- 
               事件來源映射的狀態。可為下列其中之一: Creating、Enabling、Enabled、Disabling、Disabled、Updating或Deleting。類型:字串 
- StateTransitionReason
- 
               指出使用者或 Lambda 是否對事件來源映射進行最後的變更。 類型:字串 
- Topics
- 
               Kafka 主題名稱。 類型:字串陣列 陣列成員:固定項目數為 1。 長度限制:長度下限為 1。長度上限為 249。 模式: ^[^.]([a-zA-Z0-9\-_.]+)
- TumblingWindowInSeconds
- 
               (僅限 Kinesis 和 DynamoDB Streams) DynamoDB 和 Kinesis Streams 事件來源處理時段的持續時間 (以秒為單位)。值為 0 秒代表沒有輪轉時段。 類型:整數 有效範圍:最小值為 0。最大值為 900。 
- UUID
- 
               事件來源映射的識別符。 類型:字串 
錯誤
如需所有動作常見錯誤的資訊,請參閱常見錯誤。
- InvalidParameterValueException
- 
               請求中的其中一個參數無效。 HTTP 狀態碼:400 
- ResourceConflictException
- 
               資源已存在,或另一個操作正在進行中。 HTTP 狀態碼:409 
- ResourceInUseException
- 
               操作與資源的可用性衝突。例如,您嘗試 CREATING 狀態的更新事件來源映射,或嘗試刪除目前處於 UPDATING 狀態的事件來源映射。 HTTP 狀態碼:400 
- ResourceNotFoundException
- 
               請求中指定的資源不存在。 HTTP 狀態碼:404 
- ServiceException
- 
               AWS Lambda 服務發生內部錯誤。 HTTP 狀態碼:500 
- TooManyRequestsException
- 
               超出請求輸送量限制。如需詳細資訊,請參閱 Lambda 配額。 HTTP 狀態碼:429 
另請參閱
如需在語言特定的 AWS 開發套件之一中使用此 API 的詳細資訊,請參閱下列說明: