Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Exemplos: Invocar uma função do Lambda da instância de banco de dados do RDS for PostgreSQL

Modo de foco
Exemplos: Invocar uma função do Lambda da instância de banco de dados do RDS for PostgreSQL - Amazon Relational Database Service

A seguir, você pode encontrar alguns exemplos de como chamar a função aws_lambda.invoke. A maioria dos exemplos usa a estrutura composta aws_lambda_arn_1 que você cria em Etapa 4: usar as funções Lambda auxiliares com a instância de banco de dados do RDS for PostgreSQL (opcional) para simplificar a passagem dos detalhes da função. Para obter um exemplo de invocação assíncrona, consulte Exemplo: invocação assíncrona (evento) de funções Lambda. Todos os outros exemplos listados usam invocação síncrona.

Para saber mais sobre os tipos de invocação do Lambda, consulte Invocação de funções Lambda no Guia do desenvolvedor do AWS Lambda. Para obter mais informações sobre o aws_lambda_arn_1, consulte aws_commons.create_lambda_function_arn.

Exemplo: invocação síncrona (RequestResponse) de funções Lambda

A seguir estão dois exemplos de uma invocação síncrona de função Lambda. Os resultados dessas chamadas de funções aws_lambda.invoke são os mesmos.

SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json);
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse');

Os parâmetros são descritos da seguinte forma:

  • :'aws_lambda_arn_1' – Este parâmetro identifica a estrutura composta criada em Etapa 4: usar as funções Lambda auxiliares com a instância de banco de dados do RDS for PostgreSQL (opcional), com a função auxiliar aws_commons.create_lambda_function_arn. Você também pode criar essa estrutura em linha dentro da sua chamada aws_lambda.invoke da seguinte forma:

    SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function', 'aws-region'), '{"body": "Hello from Postgres!"}'::json );
  • '{"body": "Hello from PostgreSQL!"}'::json – A carga útil JSON para passar para a função Lambda.

  • 'RequestResponse' – O Lambda tipo de invocação.

Exemplo: invocação assíncrona (evento) de funções Lambda

Segue-se um exemplo de uma invocação de função Lambda assíncrona. O tipo de invocação Event agenda a invocação de função Lambda com a carga de entrada específica e retorna imediatamente. Use o tipo de invocação de Event em determinados fluxos de trabalho que não dependem dos resultados da função Lambda.

SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'Event');

Exemplo: capturar o log de execução do Lambda em uma resposta de função

Você pode incluir os últimos 4 KB do log de execução na resposta da função usando o parâmetro log_type em sua chamada de função aws_lambda.invoke. Por padrão, esse parâmetro é definido como None, mas você pode especificar Tail para capturar os resultados do log de execução do Lambda na resposta, conforme mostrado a seguir.

SELECT *, select convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');

Defina o parâmetro aws_lambda.invoke da função log_type para Tail incluir o log de execução na resposta. O valor padrão para o parâmetro log_type é None.

O log_result que é retornado é uma string codificada de base64. Você pode decodificar os conteúdos usando uma combinação das funções PostgreSQL decode e convert_from.

Para obter mais informações sobre o log_type, consulte aws_lambda.invoke.

Exemplo: incluir o contexto do cliente em uma função Lambda

A função aws_lambda.invoke tem um parâmetro context que você pode usar para passar informações separadas da carga útil, como mostrado a seguir.

SELECT *, convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');

Para incluir o contexto do cliente, use um objeto JSON para o parâmetro aws_lambda.invoke da funçãocontext.

Para obter mais informações sobre os parâmetros do context, consulte a referência aws_lambda.invoke.

Exemplo: invocar uma versão específica de uma função Lambda

Você pode especificar uma determinada versão de uma função Lambda incluindo o parâmetro qualifier com a chamada aws_lambda.invoke. A seguir, você pode encontrar um exemplo que faz isso usando 'custom_version' como um alias para a versão.

SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'None', NULL, 'custom_version');

Você também pode fornecer um qualificador de função Lambda com as informações de nome da função da forma a seguir.

SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function:custom_version', 'us-west-2'), '{"body": "Hello from Postgres!"}'::json);

Para obter mais informações sobre qualifier e outros parâmetros, consulte a referência aws_lambda.invoke.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.