将 AWS Lambda 与 Amazon RDS 配合使用 - AWS Lambda
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 AWS Lambda 与 Amazon RDS 配合使用

您可以使用 AWS Lambda 处理来自 Amazon Relational Database Service (Amazon RDS) 数据库的事件通知。Amazon RDS 将通知发送到 Amazon Simple Notification Service (Amazon SNS) 主题,您可以将其配置为调用 Lambda 函数。Amazon SNS 将来自 Amazon RDS 的消息包装在自己的事件文档中,并将其发送到您的函数。

示例

例 Amazon SNS 事件中的 Amazon RDS 消息

{ "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:us-east-2:123456789012:rds-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "EventSource": "aws:sns", "Sns": { "SignatureVersion": "1", "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "SigningCertUrl": "https://sns.us-east-2.amazonaws.com/SimpleNotificationService-ac565b8b1a6c5d002d285f9598aa1d9b.pem", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "{\"Event Source\":\"db-instance\",\"Event Time\":\"2019-01-02 12:45:06.000\",\"Identifier Link\":\"https://console.aws.amazon.com/rds/home?region=eu-west-1#dbinstance:id=dbinstanceid\",\"Source ID\":\"dbinstanceid\",\"Event ID\":\"http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/USER_Events.html#RDS-EVENT-0002\",\"Event Message\":\"Finished DB Instance backup\"}", "MessageAttributes": {}, "Type": "Notification", "UnsubscribeUrl": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-2:123456789012:sns-lambda", "Subject": "RDS Notification Message" } } ] }

配置函数

配置函数的最大并发数量

如果同时运行过多的函数实例,一个或多个实例可能会无法获得数据库连接。您可以使用预留并发来限制函数的最大并发数量。将预留并发设置为小于数据库连接数。预留并发也会为此函数预留这些实例,这可能并不理想。如果要从应用程序调用 Lambda 函数,建议您编写代码来限制并发实例数。有关更多信息,请参阅管理 Lambda 函数的并发数量

从数据库发送通知

有关配置 Amazon RDS 数据库来发送通知的说明,请参阅《Amazon RDS 用户指南》中的使用 Amazon RDS 事件通知

将 Amazon SNS 用作触发器

有关使用 Amazon SNS 作为触发器的详细信息,请参阅将 AWS Lambda 与 Amazon SNS 结合使用

接下来做什么?