Ejemplos: invoque las funciones de Lambda desde su instancia de base de datos de RDS for PostgreSQL
A continuación, puede encontrar varios ejemplos de llamada a la función de aws_lambda.invoke. La mayoría de ejemplos utilizan la estructura compuesta aws_lambda_arn_1
que se crea en Paso 4: utilice las funciones auxiliares de Lambda con su instancia de base de datos de RDS for PostgreSQL (Opcional) para simplificar la transferencia de los detalles de la función. Para obtener un ejemplo de invocación asincrónica, consulte Ejemplo: invocación asincrónica (Event) de funciones de Lambda. El resto de ejemplos enumerados utilizan la invocación sincrónica.
Para obtener más información acerca de los tipos de invocación de Lambda, consulte Invocación de funciones de Lambda en la Guía para desarrolladores de AWS Lambda. Para obtener más información acerca de aws_lambda_arn_1
, consulte aws_commons.create_lambda_function_arn.
Lista de ejemplos
- Ejemplo: invocación sincrónica (RequestResponse) de funciones de Lambda
- Ejemplo: invocación asincrónica (Event) de funciones de Lambda
- Ejemplo: captura del registro de ejecución de Lambda en una respuesta de función
- Ejemplo: inclusión del contexto del cliente en una función Lambda
- Ejemplo: invocación de una versión específica de una función de Lambda
Ejemplo: invocación sincrónica (RequestResponse) de funciones de Lambda
Lo que sigue son dos ejemplos de una invocación de función de Lambda sincrónica. Los resultados de estas llamadas de funciones de aws_lambda.invoke
son iguales.
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');
Los parámetros se describen de la siguiente manera:
-
:'aws_lambda_arn_1'
: este parámetro identifica la estructura compuesta creada en Paso 4: utilice las funciones auxiliares de Lambda con su instancia de base de datos de RDS for PostgreSQL (Opcional), con la función auxiliar deaws_commons.create_lambda_function_arn
. También puede crear esta estructura en línea dentro de su llamada deaws_lambda.invoke
de la siguiente manera.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
– La carga útil JSON que se va a pasar a la función Lambda. -
'RequestResponse'
– El tipo de invocación Lambda.
Ejemplo: invocación asincrónica (Event) de funciones de Lambda
Lo que sigue es un ejemplo de una invocación de función asincrónica Lambda. El tipo de invocación Event
programa la invocación de la función Lambda con la carga útil de entrada especificada y regresa inmediatamente. Utilice el tipo de invocación Event
en ciertos flujos de trabajo que no dependen de los resultados de la función Lambda.
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'Event');
Ejemplo: captura del registro de ejecución de Lambda en una respuesta de función
Puede incluir los últimos 4 KB del registro de ejecución en la respuesta de función mediante el parámetro log_type
en su llamada a funciones de aws_lambda.invoke
. De forma predeterminada, este parámetro se establece en None
, pero puede especificar Tail
para capturar los resultados del registro de ejecución de Lambda en la respuesta, como se muestra a continuación.
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');
Establezca el parámetro aws_lambda.invoke de la función log_type
en Tail
para incluir el registro de ejecución en la respuesta. El valor predeterminado para el parámetro log_type
es None
.
El log_result
que se devuelve es una cadena codificada base64
. Puede decodificar el contenido utilizando una combinación de las funciones decode
y convert_from
PostgreSQL.
Para obtener más información acerca de log_type
, consulte aws_lambda.invoke.
Ejemplo: inclusión del contexto del cliente en una función Lambda
La función aws_lambda.invoke
tiene un parámetro context
que puede utilizar para pasar la información por separado de la carga, como se muestra a continuación.
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 el contexto del cliente, utilice un objeto JSON para el parámetro aws_lambda.invoke de la función context
.
Para obtener más información sobre los parámetros de context
, consulte la referencia de aws_lambda.invoke.
Ejemplo: invocación de una versión específica de una función de Lambda
Se puede especificar una versión concreta de una función de Lambda mediante el parámetro qualifier
con la llamada de aws_lambda.invoke
. A continuación, encontrará información sobre el ejemplo que hace esto mediante '
como alias de la versión.custom_version
'
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'None', NULL, '
custom_version
');
Además, puede proporcionar un calificador de función de Lambda con los detalles del nombre de función en su lugar de la siguiente manera.
SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function:custom_version', 'us-west-2'), '{"body": "Hello from Postgres!"}'::json);
Para obtener más información acerca de qualifier
y otros parámetros, consulte la referencia de aws_lambda.invoke.