Conectar automaticamente uma função do Lambda e uma instância de banco de dados - Amazon Relational Database Service

Conectar automaticamente uma função do Lambda e uma instância de banco de dados

Você pode usar o console do Amazon RDS para simplificar a configuração de uma conexão entre uma função do Lambda e uma instância de banco de dados. Muitas vezes, a instância de banco de dados está em uma sub-rede privada dentro de uma VPC. A função do Lambda pode ser usada por aplicações para acessar a instância de banco de dados privada.

Para receber instruções sobre como configurar uma conexão entre uma função do Lambda e um cluster de banco de dados multi-AZ, consulte Conectar automaticamente uma função do Lambda e um cluster de banco de dados multi-AZ.

A imagem a seguir mostra uma conexão direta entre a instância de banco de dados e a função do Lambda.

Conectar automaticamente uma instância de banco de dados a uma função do Lambda

Você pode configurar a conexão entre a função do Lambda e a instância de banco de dados por meio do RDS Proxy para melhorar a performance e a resiliência do banco de dados. Em geral, as funções do Lambda fazem conexões curtas frequentes com o banco de dados que se beneficiam do grupo de conexões oferecido pelo RDS Proxy. É possível aproveitar qualquer autenticação do AWS Identity and Access Management (IAM) que você já tenha para funções do Lambda, em vez de gerenciar credenciais de banco de dados no código de aplicação do Lambda. Para obter mais informações, consulte Usar o Amazon RDS Proxy.

Quando você usa o console para se conectar a um proxy existente, o Amazon RDS atualiza o grupo de segurança do proxy para permitir conexões da instância de banco de dados e a função do Lambda.

Você também pode criar um proxy na mesma página do console. Ao criar um proxy no console, para acessar a instância de banco de dados, você deve inserir suas credenciais do banco de dados ou selecionar um segredo do AWS Secrets Manager.

Conectar automaticamente uma instância de banco de dados a uma função do Lambda por meio do RDS Proxy

Visão geral da conectividade automática com uma função do Lambda

Confira abaixo os requisitos para conectar uma função do Lambda a uma instância de banco de dados do RDS:

  • A função do Lambda deve existir na mesma VPC que a instância de banco de dados.

  • O usuário que configura a conectividade deve ter permissões para realizar as seguintes operações do Amazon RDS, do Amazon EC2, do Lambda, do Secrets Manager e do IAM:

    • Amazon RDS

      • rds:CreateDBProxies

      • rds:DescribeDBInstances

      • rds:DescribeDBProxies

      • rds:ModifyDBInstance

      • rds:ModifyDBProxy

      • rds:RegisterProxyTargets

    • Amazon EC2

      • ec2:AuthorizeSecurityGroupEgress

      • ec2:AuthorizeSecurityGroupIngress

      • ec2:CreateSecurityGroup

      • ec2:DeleteSecurityGroup

      • ec2:DescribeSecurityGroups

      • ec2:RevokeSecurityGroupEgress

      • ec2:RevokeSecurityGroupIngress

    • Lambda

      • lambda:CreateFunctions

      • lambda:ListFunctions

      • lambda:UpdateFunctionConfiguration

    • Secrets Manager

      • secretsmanager:CreateSecret

      • secretsmanager:DescribeSecret

    • IAM

      • iam:AttachPolicy

      • iam:CreateRole

      • iam:CreatePolicy

    • AWS KMS

      • kms:describeKey

nota

Se a instância de banco de dados e a função do Lambda estiverem em zonas de disponibilidade diferentes, sua conta poderá incorrer em custos entre as zonas.

Quando você configura uma conexão entre uma função do Lambda e um banco de dados do RDS, o Amazon RDS configura o grupo de segurança da VPC para sua instância e para a instância banco de dados. Se você usa o RDS Proxy, o Amazon RDS também configura o grupo de segurança da VPC para o proxy. O Amazon RDS atua de acordo com a configuração atual dos grupos de segurança associados à instância de banco de dados, à função do Lambda e ao proxy, conforme descrito na tabela a seguir.

Configuração atual do grupo de segurança do RDS Configuração do grupo de segurança do Lambda atual Configuração do grupo de segurança de proxy atual Ação do RDS

Há um ou mais grupos de segurança associados à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se um proxy já estiver conectado à instância de banco de dados, o RDS conferirá se o TargetHealth de um proxy associado está AVAILABLE.

Um grupo de segurança que corresponde ao padrão não foi modificado. Esse grupo de segurança tem apenas uma regra de entrada com o grupo de segurança da VPC da função do Lambda ou do proxy como origem.

Há um ou mais grupos de segurança associados à função do Lambda com um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n (em que n é um número).

Um grupo de segurança que corresponde ao padrão não foi modificado. Esse grupo de segurança tem apenas uma regra de saída com o grupo de segurança da VPC da instância de banco de dados ou do proxy como destino.

Há um ou mais grupos de segurança associados ao proxy com um nome correspondente ao padrão rdsproxy-lambda-n (em que n é um número).

Um grupo de segurança que corresponde ao padrão não foi modificado. Esse grupo de segurança tem regras de entrada e saída com os grupos de segurança da VPC da função do Lambda e da instância de banco de dados.

O Amazon RDS não realiza nenhuma ação.

Uma conexão já foi configurada automaticamente entre a função do Lambda, o proxy (opcional) e a instância de banco de dados. Como já existe uma conexão entre a função, o proxy e o banco de dados, os grupos de segurança não são modificados.

Qualquer uma das seguintes condições se aplica:

  • Não há nenhum grupo de segurança associado à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado está AVAILABLE.

  • Há um ou mais grupos de segurança associados à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado estiver AVAILABLE. No entanto, nenhum desses grupos de segurança pode ser usado para a conexão com a função do Lambda.

O Amazon RDS não pode usar um grupo de segurança que não tenha uma regra de entrada no grupo de segurança da VPC da função do Lambda ou do proxy como origem. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado. São exemplos de modificação a adição de uma regra ou a alteração da porta de uma regra existente.

Qualquer uma das seguintes condições se aplica:

  • Não há um grupo de segurança associado à função do Lambda com um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n.

  • Há um ou mais grupos de segurança associados à função do Lambda com um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n. No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a instância de banco de dados.

O Amazon RDS não pode usar um grupo de segurança que não tenha uma regra de saída com o grupo de segurança da VPC da instância de banco de dados ou do proxy como origem. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.

Qualquer uma das seguintes condições se aplica:

  • Não há um grupo de segurança associado ao proxy com um nome correspondente ao padrão rdsproxy-lambda-n.

  • Há um ou mais grupos de segurança associados ao proxy com um nome correspondente ao rdsproxy-lambda-n. No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a instância de banco de dados ou a função do Lambda.

O Amazon RDS não pode usar um grupo de segurança que não tenha regras de entrada e saída com o grupo de segurança da VPC da instância de banco de dados ou da função do Lambda. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.
RDS action: create new security groups

Há um ou mais grupos de segurança associados à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado estiver AVAILABLE.

Um grupo de segurança que corresponde ao padrão não foi modificado. Esse grupo de segurança tem apenas uma regra de entrada com o grupo de segurança da VPC da função do Lambda ou do proxy como origem.

Há um ou mais grupos de segurança associados à função do Lambda com um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n.

No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a instância de banco de dados. O Amazon RDS não pode usar um grupo de segurança que não tenha uma regra de saída com o grupo de segurança da VPC da instância de banco de dados ou do proxy como origem. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.

Há um ou mais grupos de segurança associados ao proxy com um nome correspondente ao padrão rdsproxy-lambda-n.

No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a instância de banco de dados ou a função do Lambda. O Amazon RDS não pode usar um grupo de segurança que não tenha regras de entrada e saída com o grupo de segurança da VPC da instância de banco de dados ou da função do Lambda. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.

RDS action: create new security groups

Há um ou mais grupos de segurança associados à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado estiver AVAILABLE.

Um grupo de segurança que corresponde ao padrão não foi modificado. Esse grupo de segurança tem apenas uma regra de entrada com o grupo de segurança da VPC da função do Lambda ou do proxy como origem.

Existe um grupo de segurança do Lambda válido para a conexão, mas ele não está associado à função do Lambda. Esse grupo de segurança tem um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n. Não foi modificado. Ele tem apenas uma regra de saída com o grupo de segurança da VPC da instância de banco de dados ou do proxy como destino.

Existe um grupo de segurança do proxy válido para a conexão, mas ele não está associado ao proxy. Esse grupo de segurança tem um nome que corresponde ao padrão rdsproxy-lambda-n. Não foi modificado. Ele tem regras de entrada e saída com os grupos de segurança da VPC da instância de banco de dados e da função do Lambda.

RDS action: associate Lambda security group

Qualquer uma das seguintes condições se aplica:

  • Não há nenhum grupo de segurança associado à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado está AVAILABLE.

  • Há um ou mais grupos de segurança associados à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado estiver AVAILABLE. No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a função do Lambda ou o proxy.

O Amazon RDS não pode usar um grupo de segurança que não tenha uma regra de entrada no grupo de segurança da VPC da função do Lambda ou do proxy como origem. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.

Há um ou mais grupos de segurança associados à função do Lambda com um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n.

Um grupo de segurança que corresponde ao padrão não foi modificado. Esse grupo de segurança tem apenas uma regra de saída com o grupo de segurança da VPC da instância de banco de dados ou do proxy como destino.

Há um ou mais grupos de segurança associados ao proxy com um nome correspondente ao padrão rdsproxy-lambda-n.

Um grupo de segurança que corresponde ao padrão não foi modificado. Esse grupo de segurança tem regras de entrada e saída com os grupos de segurança da VPC da instância de banco de dados e da função do Lambda.

RDS action: create new security groups

Qualquer uma das seguintes condições se aplica:

  • Não há nenhum grupo de segurança associado à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado está AVAILABLE.

  • Há um ou mais grupos de segurança associados à instância de banco de dados com um nome correspondente ao padrão rds-lambda-n ou se o TargetHealth de um proxy associado estiver AVAILABLE. No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a função do Lambda ou o proxy.

O Amazon RDS não pode usar um grupo de segurança que não tenha uma regra de entrada no grupo de segurança da VPC da função do Lambda ou do proxy como origem. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.

Qualquer uma das seguintes condições se aplica:

  • Não há um grupo de segurança associado à função do Lambda com um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n.

  • Há um ou mais grupos de segurança associados à função do Lambda com um nome correspondente ao padrão lambda-rds-n ou lambda-rdsproxy-n. No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a instância de banco de dados.

O Amazon RDS não pode usar um grupo de segurança que não tenha uma regra de saída com o grupo de segurança da VPC da instância de banco de dados ou do proxy como origem. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.

Qualquer uma das seguintes condições se aplica:

  • Não há um grupo de segurança associado ao proxy com um nome correspondente ao padrão rdsproxy-lambda-n.

  • Há um ou mais grupos de segurança associados ao proxy com um nome correspondente ao rdsproxy-lambda-n. No entanto, o Amazon RDS não pode usar nenhum desses grupos de segurança para a conexão com a instância de banco de dados ou a função do Lambda.

O Amazon RDS não pode usar um grupo de segurança que não tenha regras de entrada e saída com o grupo de segurança da VPC da instância de banco de dados ou da função do Lambda. O Amazon RDS também não pode usar um grupo de segurança que tenha sido modificado.
RDS action: create new security groups
Ação
do RDS: criar grupos de segurança

O Amazon RDS realiza as seguintes ações:

  • Cria um grupo de segurança que corresponde ao padrão rds-lambda-n ou rds-rdsproxy-n (se você optar por usar o RDS Proxy). Esse grupo de segurança tem uma regra de entrada com o grupo de segurança da VPC da função do Lambda ou do proxy como origem. Esse grupo de segurança está associado à instância de banco de dados e permite que a função ou o proxy acesse a instância de banco de dados.

  • Cria um grupo de segurança que corresponde ao padrão lambda-rds-n ou ao lambda-rdsproxy-n. Esse grupo de segurança tem uma regra de saída com o grupo de segurança da VPC da instância de banco de dados ou do proxy como destino. Esse grupo de segurança está associado à função do Lambda e permite que a função envie tráfego para a instância de banco de dados ou envie tráfego por meio de um proxy.

  • Cria um grupo de segurança que corresponde ao padrão rdsproxy-lambda-n. Esse grupo de segurança tem regras de entrada e saída com os grupos de segurança da VPC da instância de banco de dados e da função do Lambda.

Ação
 do RDS: associar o grupo de segurança do Lambda

O Amazon RDS associa o grupo de segurança do Lambda válido e existente à função do Lambda. Esse grupo de segurança permite que a função envie tráfego para a instância de banco de dados ou envie tráfego por meio de um proxy.

Conectar automaticamente uma função do Lambda e um banco de dados do RDS

Você pode usar o console do Amazon RDS para conectar automaticamente uma função do Lambda à instância de banco de dados. Isso simplifica o processo de configuração de uma conexão entre esses recursos.

Você também pode usar o RDS Proxy para incluir um proxy em sua conexão. As funções do Lambda fazem conexões curtas frequentes com o banco de dados que se beneficiam do grupo de conexões oferecido pelo RDS Proxy. Também é possível usar qualquer autenticação do IAM que você já tenha para funções do Lambda, em vez de gerenciar credenciais de banco de dados no código da aplicação do Lambda.

Você pode conectar uma instância de banco de dados existente a funções do Lambda novas e existentes usando a página Configurar conexão do Lambda. O processo de configuração define automaticamente os grupos de segurança necessários para você.

Antes de configurar uma conexão entre uma função do Lambda e uma instância de banco de dados, garanta que:

Se você alterar os grupos de segurança depois de configurar a conectividade, as alterações poderão afetar a conexão entre a função do Lambda e a instância de banco de dados.

nota

Você possa configurar automaticamente uma conexão entre uma instância de banco de dados e uma função do Lambda somente no AWS Management Console. Para conectar uma função do Lambda, a instância de banco de dados deve estar no estado Disponível.

Como conectar automaticamente uma função do Lambda e uma instância de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, selecione Bancos de dados e, depois, a instância de banco de dados que você deseja conectar a uma função do Lambda.

  3. Em Ações, selecione Configurar conexão do Lambda.

  4. Na página Configurar conexão do Lambda, em Selecionar função do Lambda, faça o seguinte:

    • Se você tiver uma função do Lambda existente na mesma VPC que a instância de banco de dados, selecione Selecionar função existente e, depois, escolha a função.

    • Se você não tiver uma função do Lambda na mesma VPC, selecione Criar função do Lambda e, depois, insira um Nome da função. O runtime padrão é definido como Nodejs.18. Você pode modificar as configurações de sua nova função do Lambda no console do Lambda depois de concluir a configuração da conexão.

  5. (Opcional) Em RDS Proxy, selecione Conectar usando o RDS Proxy e, depois, faça o seguinte:

    • Se você tiver um proxy que deseja usar, escolha Selecionar um proxy existente e, depois, escolha o proxy.

    • Se você não tiver um proxy e quiser que o Amazon RDS crie um automaticamente para você, selecione Criar um proxy. Então, para Credenciais de banco de dados, faça o seguinte:

      1. Selecione Nome de usuário e senha do banco de dados e, depois, insira o Nome do usuário e a Senha para a instância de banco de dados.

      2. Selecione Segredo do Secrets Manager. Então, em Selecionar segredo, escolha um segredo do AWS Secrets Manager. Se você não tiver um segredo do Secrets Manager, selecione Criar um segredo do Secrets Manager para criar um segredo. Depois de criar o segredo, em Selecionar segredo, escolha o novo segredo.

      Depois de criar o proxy, escolha Selecionar proxy existente e, depois, escolha o proxy. Observe que pode levar algum tempo até que o proxy esteja disponível para conexão.

  6. (Opcional) Expanda Resumo da conexão e verifique as atualizações destacadas para seus recursos.

  7. Escolha Set up (Configurar).

Visualizar recursos computacionais conectados

Você pode usar o AWS Management Console para visualizar as funções do Lambda que estão conectadas à instância de banco de dados. Os recursos mostrados incluem conexões de recursos de computação que o Amazon RDS configurou automaticamente.

Os recursos de computação listados não incluem aqueles que são conectados manualmente à instância de banco de dados. Por exemplo, você pode permitir que um recurso de computação acesse a instância de banco de dados manualmente adicionando uma regra ao grupo de segurança da VPC associado ao banco de dados.

Para que o console liste uma função do Lambda, as seguintes condições devem ser aplicadas:

  • O nome do grupo de segurança associado ao recurso de computação corresponde ao padrão lambda-rds-n ou lambda-rdsproxy-n (em que n é um número).

  • O grupo de segurança associado ao recurso de computação tem uma regra de saída com o intervalo de portas definido como a porta da instância de banco de dados ou de um proxy associado. O destino da regra de saída deve ser definido como um grupo de segurança associado à instância de banco de dados ou a um proxy associado.

  • Se a configuração incluir um proxy, o nome do grupo de segurança anexado ao proxy associado ao banco de dados corresponderá ao padrão rdsproxy-lambda-n (em que n é um número).

  • O grupo de segurança associado à função tem uma regra de saída com a porta definida como a porta que a instância de banco de dados ou o proxy associado usa. O destino deve ser definido como um grupo de segurança associado à instância de banco de dados ou ao proxy associado.

Como visualizar os recursos de computação conectados automaticamente a uma instância de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, selecione Bancos de dados  e escolha a instância de banco de dados.

  3. Na guia Conectividade e segurança, veja os recursos de computação em Recursos de computação conectados.