SQS 也不例外。 DynamoDB 和 Kinesis 流也是如此。我认为原因是 所有三个 服务都通过 event source mappings 与 lambda 一起工作。没有其他东西在使用映射。
但是,通过控制台更新event source mappings 也是不可能的。您可以为此使用 CLI 或 SDK,但这也需要获取映射的 UUID 以进行修改。遗憾的是控制台中也没有提供 UUID。
要在 CLI 中使用,您必须分两步。
1 获取 UUID
aws lambda list-event-source-mappings --query 'EventSourceMappings[].[UUID, EventSourceArn]' --output table
-------------------------------------------------------------------------------------------------------------------------------
| ListEventSourceMappings |
+---------------------------------------+-------------------------------------------------------------------------------------+
| 5ab44863-82c2-4acc-b9dc-b14ad368effa | arn:aws:kinesis:us-east-1:xxxxx:stream/kstream |
| 7479947c-bde5-4041-a438-5eb08f350505 | arn:aws:dynamodb:us-east-1:xxxx:table/test/stream/2020-07-28T23:13:41.006 |
| 40040139-32fb-4297-b094-3f08368c980c | arn:aws:sqs:us-east-1:xxxxx:Messages |
| a2b22aa6-f37a-4603-895b-3a044661ebdf | arn:aws:sqs:us-east-1:xxx:test-queue |
+---------------------------------------+-------------------------------------------------------------------------------------+
2。更新映射(例如 SQS)
aws lambda update-event-source-mapping --uuid a2b22aa6-f37a-4603-895b-3a044661ebdf --batch-size 5
{
"UUID": "a2b22aa6-f37a-4603-895b-3a044661ebdf",
"BatchSize": 5,
"EventSourceArn": "arn:aws:sqs:us-east-1:xxx:test-queue",
"FunctionArn": "arn:aws:lambda:us-east-1:xxxx:function:testsfd",
"LastModified": 1595978738.458,
"State": "Updating",
"StateTransitionReason": "USER_INITIATED"
}