Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo AWS Lambda con Amazon RDS
Puoi connettere una funzione Lambda a un database Amazon Relational Database Service (AmazonRDS) direttamente e tramite un proxy Amazon. RDS Le connessioni dirette sono utili in scenari semplici, mentre i server proxy sono consigliati per la produzione. Un proxy del database gestisce un pool di connessioni a database condivisi che consente alla funzione di raggiungere elevati livelli di simultaneità senza esaurire le connessioni al database.
Ti consigliamo di utilizzare le funzioni di Amazon RDS Proxy for Lambda che effettuano connessioni brevi e frequenti al database o aprono e chiudono un numero elevato di connessioni al database. Per ulteriori informazioni, consulta Connessione automatica di una funzione Lambda e un'istanza DB nella Amazon Relational Database Service Developer Guide.
Configurazione della funzione per l'utilizzo delle risorse RDS
Nella console Lambda, puoi effettuare il provisioning e configurare istanze di RDS database Amazon e risorse proxy. Puoi farlo accedendo ai RDSdatabase nella scheda Configurazione. In alternativa, puoi anche creare e configurare connessioni alle funzioni Lambda nella console AmazonRDS. Quando configuri un'istanza di RDS database da utilizzare con Lambda, tieni presente i seguenti criteri:
-
Per connetterti a un database, la tua funzione deve trovarsi nello stesso Amazon in VPC cui viene eseguito il database.
-
Puoi utilizzare RDS i database Amazon con i motori MySQL, MariaDB, SQL Postgre o Microsoft Server. SQL
-
Puoi anche utilizzare i cluster Aurora DB con i motori My SQL o Postgre. SQL
-
Devi fornire un segreto di Secrets Manager per l'autenticazione del database.
-
Un IAM ruolo deve fornire il permesso di utilizzare il segreto e una politica di fiducia deve consentire RDS ad Amazon di assumere il ruolo.
-
Il IAM principale che utilizza la console per configurare la RDS risorsa Amazon e collegarla alla tua funzione deve disporre delle seguenti autorizzazioni:
Nota
Le autorizzazioni Amazon RDS Proxy sono necessarie solo se configuri un Amazon RDS Proxy per gestire un pool di connessioni al database.
Esempio policy di autorizzazione
{ "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 addebita una tariffa oraria per i proxy in base alla dimensione dell'istanza del database, consulta la sezione Prezzi dei RDS proxy
Configurazione Lambda e Amazon RDS
Entrambe le RDS console Lambda e Amazon ti aiuteranno a configurare automaticamente alcune delle risorse necessarie per stabilire una connessione tra Lambda e Amazon. RDS
Connessione a un RDS database Amazon in una funzione Lambda
Il seguente esempio di codice mostra come implementare una funzione Lambda che si connette a un database AmazonRDS. La funzione effettua una semplice richiesta al database e restituisce il risultato.
Elaborazione delle notifiche di eventi da Amazon RDS
Puoi usare Lambda per elaborare notifiche di eventi da un database AmazonRDS. Amazon RDS invia notifiche a un argomento di Amazon Simple Notification Service (AmazonSNS), che puoi configurare per richiamare una funzione Lambda. Amazon SNS inserisce il messaggio di Amazon RDS nel proprio documento evento e lo invia alla tua funzione.
Per ulteriori informazioni sulla configurazione di un RDS database Amazon per l'invio di notifiche, consulta Using Amazon RDS Event Notifications.
Esempio RDSMessaggio Amazon in un SNS evento Amazon
{ "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" } } ] }
Tutorial completo su Lambda e Amazon RDS
-
Utilizzo di una funzione Lambda per accedere a un RDS database Amazon: dalla Amazon RDS User Guide, scopri come usare una funzione Lambda per scrivere dati su un database Amazon RDS tramite un Amazon Proxy. RDS La tua funzione Lambda leggerà i record da una SQS coda Amazon e scriverà nuovi elementi in una tabella del tuo database ogni volta che viene aggiunto un messaggio.