- Amazon Aurora

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à.

Di seguito, è possibile trovare diversi esempi di chiamate alla funzione aws_lambda.invoke. La maggior parte degli esempi utilizza la struttura composita creata per semplificare il aws_lambda_arn_1 passaggio dei dettagli della funzione. Fase 4: utilizzo delle funzioni di supporto Lambda con il cluster database Aurora PostgreSQL (facoltativo) Per un esempio di chiamata asincrona, consulta Esempio: richiamo (di eventi) asincroni di funzioni Lambda. Tutti gli altri esempi elencati utilizzano il richiamo sincrono.

Per ulteriori informazioni sui tipi di invocazione Lambda, consulta Richiamo delle funzioni Lambda nella AWS Lambda Guida per gli sviluppatori. Per ulteriori informazioni su aws_lambda_arn_1, consulta aws_commons.create_lambda_function_arn.

Esempio: invocazione sincrona (RequestResponse) di funzioni Lambda

Di seguito sono riportati due esempi di una chiamata di funzione Lambda sincrona. I risultati di queste chiamate di funzione aws_lambda.invoke sono gli stessi.

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');

I parametri sono descritti come segue:

  • :'aws_lambda_arn_1': questo parametro identifica la struttura composita creata in Fase 4: utilizzo delle funzioni di supporto Lambda con il cluster database Aurora PostgreSQL (facoltativo) con la funzione di supporto di aws_commons.create_lambda_function_arn. Puoi anche creare questa struttura in linea all'interno della chiamata aws_lambda.invoke come segue:

    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— Il JSON payload da passare alla funzione Lambda.

  • 'RequestResponse': il tipo di richiamo Lambda.

Esempio: richiamo (di eventi) asincroni di funzioni Lambda

Di seguito è riportato un esempio di una chiamata di funzione Lambda asincrona. Il tipo di richiamo Event pianifica il richiamo della funzione Lambda con il payload di input specificato e restituisce immediatamente un risultato. Utilizza il tipo di chiamata Event in determinati flussi di lavoro che non dipendono dai risultati della funzione Lambda.

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

Esempio: acquisizione del registro di esecuzione Lambda in una risposta di funzione

È possibile includere gli ultimi 4 KB del registro di esecuzione nella risposta della funzione utilizzando il parametro log_type nella chiamata di funzione aws_lambda.invoke. Per impostazione predefinita, questo parametro è impostato su None, ma puoi specificare Tail per acquisire i risultati del registro di esecuzione Lambda nella risposta, come illustrato di seguito.

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');

Impostare il parametro aws_lambda.invoke della funzione log_type su Tail per includere il log di esecuzione nella risposta. Il valore predefinito per il parametro log_type è None.

Il log_result che viene restituito è una stringa base64 codificata. È possibile decodificare il contenuto utilizzando una combinazione delle funzioni e decode Postgreconvert_from. SQL

Per ulteriori informazioni su log_type, consulta aws_lambda.invoke.

Esempio: inclusione del contesto client in una funzione Lambda

La funzione aws_lambda.invoke ha un parametro context che puoi utilizzare per passare le informazioni separate dal payload, come illustrato di seguito.

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');

Per includere il contesto del client, utilizzate un JSON oggetto per il parametro della aws_lambda.invoke funzione. context

Per ulteriori informazioni sul parametro context, consulta la documentazione di riferimento di aws_lambda.invoke.

Esempio: richiamo di una versione specifica di una funzione Lambda

Puoi specificare una determinata versione di una funzione Lambda includendo il parametro qualifier con la chiamata aws_lambda.invoke. Di seguito puoi trovare un esempio in cui viene utilizzato 'custom_version' come alias per la versione.

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

Puoi inoltre fornire un qualificatore di funzione Lambda con i dettagli relativi al nome della funzione, come mostrato di seguito.

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

Per ulteriori informazioni su qualifier e altri parametri, consulta documentazione di riferimento di aws_lambda.invoke.