Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwendung AWS Lambda mit Amazon RDS
Sie können eine Lambda-Funktion direkt und über einen Amazon-Proxy mit einer Amazon Relational Database Service (Amazon RDSRDS) -Datenbank verbinden. Direkte Verbindungen sind in einfachen Szenarien nützlich, und Proxys werden für die Produktion empfohlen. Ein Datenbank-Proxy verwaltet einen Pool gemeinsam genutzter Datenbankverbindungen, sodass Ihre Funktion eine hohe Gleichkeitigkeitsstufe erreichen kann, ohne dass die Datenbankverbindungen erschöpft werden.
Wir empfehlen die Verwendung von Amazon RDS Proxy for Lambda-Funktionen, die häufig kurze Datenbankverbindungen herstellen oder eine große Anzahl von Datenbankverbindungen öffnen und schließen. Weitere Informationen finden Sie unter Automatisches Verbinden einer Lambda-Funktion mit einer DB-Instance im Amazon Relational Database Service Developer Guide.
Konfiguration Ihrer Funktion für die Arbeit mit Ressourcen RDS
In der Lambda-Konsole können Sie RDS Amazon-Datenbank-Instances und Proxyressourcen bereitstellen und konfigurieren. Sie können dies tun, indem Sie auf der Registerkarte Konfiguration zu RDSDatenbanken navigieren. Alternativ können Sie auch Verbindungen zu Lambda-Funktionen in der RDS Amazon-Konsole erstellen und konfigurieren. Beachten Sie bei der Konfiguration einer RDS Datenbankinstanz für die Verwendung mit Lambda die folgenden Kriterien:
-
Um eine Verbindung zu einer Datenbank herzustellen, muss sich Ihre Funktion in demselben Amazon befinden, in VPC dem Ihre Datenbank läuft.
-
Sie können RDS Amazon-Datenbanken mit My-SQL, MariaDB-, Postgre- oder Microsoft SQL SQL Server-Engines verwenden.
-
Sie können Aurora-DB-Cluster auch mit My SQL - oder SQL Postgre-Engines verwenden.
-
Sie müssen ein Secrets-Manager-Geheimnis für die Authentifizierung der Datenbank angeben.
-
Eine IAM Rolle muss die Erlaubnis zur Verwendung des Geheimnisses bereitstellen, und eine Vertrauensrichtlinie muss es Amazon ermöglichen, die Rolle RDS zu übernehmen.
-
Der IAM Principal, der die Konsole verwendet, um die RDS Amazon-Ressource zu konfigurieren und sie mit Ihrer Funktion zu verbinden, muss über die folgenden Berechtigungen verfügen:
Anmerkung
Sie benötigen die Amazon RDS Proxy-Berechtigungen nur, wenn Sie einen Amazon RDS Proxy für die Verwaltung eines Pools Ihrer Datenbankverbindungen konfigurieren.
Beispiel Berechtigungsrichtlinie
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupEgress", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "rds-db:connect", "rds:CreateDBProxy", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "rds:DescribeDBSubnetGroups", "rds:DescribeDBProxies", "rds:DescribeDBProxyTargets", "rds:DescribeDBProxyTargetGroups", "rds:RegisterDBProxyTargets", "rds:ModifyDBInstance", "rds:ModifyDBProxy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lambda:CreateFunction", "lambda:ListFunctions", "lambda:UpdateFunctionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:AttachPolicy", "iam:CreateRole", "iam:CreatePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds", "secretsmanager:CreateSecret" ], "Resource": "*" } ] }
Amazon RDS berechnet einen Stundensatz für Proxys, der auf der Größe der Datenbank-Instance basiert. Weitere Informationen finden Sie unter RDSProxy-Preise
Einrichtung von Lambda und Amazon RDS
Sowohl die Lambda- als auch die RDS Amazon-Konsole unterstützen Sie bei der automatischen Konfiguration einiger der erforderlichen Ressourcen, um eine Verbindung zwischen Lambda und Amazon herzustellen. RDS
In einer Lambda-Funktion eine Verbindung zu einer RDS Amazon-Datenbank herstellen
Das folgende Codebeispiel zeigt, wie eine Lambda-Funktion implementiert wird, die eine Verbindung zu einer RDS Amazon-Datenbank herstellt. Die Funktion stellt eine einfache Datenbankanfrage und gibt das Ergebnis zurück.
Verarbeitung von Ereignisbenachrichtigungen von Amazon RDS
Sie können Lambda verwenden, um Ereignisbenachrichtigungen aus einer RDS Amazon-Datenbank zu verarbeiten. Amazon RDS sendet Benachrichtigungen an ein Amazon Simple Notification Service (AmazonSNS) -Thema, das Sie so konfigurieren können, dass es eine Lambda-Funktion aufruft. Amazon SNS verpackt die Nachricht von Amazon RDS in einem eigenen Veranstaltungsdokument und sendet sie an Ihre Veranstaltung.
Weitere Informationen zur Konfiguration einer RDS Amazon-Datenbank für das Senden von Benachrichtigungen finden Sie unter RDSAmazon-Ereignisbenachrichtigungen verwenden.
Beispiel RDSAmazon-Nachricht in einer SNS Amazon-Veranstaltung
{ "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": "2023-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\":\"2023-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" } } ] }
Vollständiges Lambda- und Amazon-Tutorial RDS
-
Verwenden einer Lambda-Funktion für den Zugriff auf eine RDS Amazon-Datenbank — Im RDS Amazon-Benutzerhandbuch erfahren Sie, wie Sie mit einer Lambda-Funktion Daten über einen Amazon-Proxy in eine RDS Amazon-Datenbank schreiben. RDS Ihre Lambda-Funktion liest Datensätze aus einer SQS Amazon-Warteschlange und schreibt neue Elemente in eine Tabelle in Ihrer Datenbank, wenn eine Nachricht hinzugefügt wird.