将 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 SNS 用作触发器的更多信息,请参阅 将 AWS Lambda 与 Amazon SNS 结合使用