Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beispiele: Aufrufen von Lambda-Funktionen aus Ihrem SQL
Nachfolgend finden Sie einige Beispiele für den Aufruf der aws_lambda.invoke-Funktion. Die meisten Beispiele verwenden die zusammengesetzte Strukturaws_lambda_arn_1
, in der Sie erstellen, um die Übergabe der Schritt 4: Verwenden Sie Lambda-Hilfsfunktionen mit Ihrem für die SQL Postgre-DB-Instance (optional) Funktionsdetails zu vereinfachen. Ein Beispiel für einen asynchronen Aufruf finden Sie unter Beispiel: Asynchroner Ereignisaufruf (Event) von Lambda-Funktionen. Alle anderen aufgelisteten Beispiele verwenden einen synchronen Aufruf.
Weitere Informationen zu Lambda-Aufruftypen finden Sie unter Aufrufen von Lambda-Funktionen in der AWS Lambda Leitfaden für Entwickler. Mehr über aws_lambda_arn_1
erfahren Sie unter aws_commons.create_lambda_function_arn.
Liste mit Beispielen
- Beispiel: Synchroner (RequestResponse) -Aufruf von Lambda-Funktionen
- Beispiel: Asynchroner Ereignisaufruf (Event) von Lambda-Funktionen
- Beispiel: Erfassen des Lambda-Ausführungsprotokolls in einer Funktionsantwort
- Beispiel: Einschließen von Client-Kontext in einer Lambda-Funktion
- Beispiel: Aufrufen einer bestimmten Version einer Lambda-Funktion
Beispiel: Synchroner (RequestResponse) -Aufruf von Lambda-Funktionen
Es folgen zwei Beispiele für einen synchronen Lambda-Funktionsaufruf. Die Ergebnisse dieser aws_lambda.invoke
-Funktionen sind identisch.
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');
Die Parameter werden wie folgt beschrieben:
-
:'aws_lambda_arn_1'
– Dieser Parameter identifiziert die zusammengesetzte Struktur, die in Schritt 4: Verwenden Sie Lambda-Hilfsfunktionen mit Ihrem für die SQL Postgre-DB-Instance (optional) erstellt wurde, mit deraws_commons.create_lambda_function_arn
-Hilfsfunktion. Sie können diese Struktur wie folgt auch in Ihrenaws_lambda.invoke
-Aufruf einbinden.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
— Die JSON Nutzlast, die an die Lambda-Funktion übergeben werden soll. -
'RequestResponse'
– Der Lambda Aufruftyp.
Beispiel: Asynchroner Ereignisaufruf (Event) von Lambda-Funktionen
Es folgt ein Beispiel für einen asynchronen Lambda-Funktionsaufruf. Der Event
-Aufruftyp plant den Lambda-Funktionsaufruf mit der angegebenen Eingabe-Nutzlast und sofort Rückgabe. Verwenden Sie den Event
-Aufruftyp in bestimmten Workflows, die nicht von den Ergebnissen der Lambda-Funktion abhängen.
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'Event');
Beispiel: Erfassen des Lambda-Ausführungsprotokolls in einer Funktionsantwort
Sie können die letzten 4 KB des Ausführungsprotokolls in die Funktionsantwort aufnehmen, indem Sie den Parameter log_type
in Ihrem aws_lambda.invoke
-Funktionsaufruf verwenden. Standardmäßig ist dieser Parameter auf None
festgelegt, aber Sie können Tail
angeben, um die Ergebnisse des Lambda-Ausführungsprotokolls in der Antwort zu erfassen, wie nachfolgend gezeigt.
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');
Legen Sie den Parameter aws_lambda.invoke der log_type
-Funktion auf Tail
, um das Ausführungsprotokoll in die Antwort aufzunehmen. Der Standardwert für diesen log_type
-Parameter ist None
.
Das log_result
, was zurückgegeben wird, ist eine base64
codierte Zeichenfolge. Sie können den Inhalt mit einer Kombination der Funktionen decode
und convert_from
Postgre dekodieren. SQL
Mehr über log_type
erfahren Sie unter aws_lambda.invoke.
Beispiel: Einschließen von Client-Kontext in einer Lambda-Funktion
Die aws_lambda.invoke
-Funktion hat einen context
-Parameter, den Sie verwenden können, um Informationen getrennt von der Nutzlast zu übergeben, wie nachfolgend gezeigt.
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');
Um den Client-Kontext einzubeziehen, verwenden Sie ein JSON Objekt als Parameter der aws_lambda.invoke context
Funktion.
Weitere Informationen zum context
-Parameter finden Sie in der aws_lambda.invoke-Referenz.
Beispiel: Aufrufen einer bestimmten Version einer Lambda-Funktion
Sie können eine bestimmte Version einer Lambda-Funktion angeben, indem Sie den qualifier
-Parameter mit dem aws_lambda.invoke
-Aufruf einschließen. Im Folgenden finden Sie ein Beispiel, das diese Funktion mit '
als Alias für die Version erfüllt.custom_version
'
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'None', NULL, '
custom_version
');
Sie können auch einen Lambda-Funktionsqualifizierer wie folgt mit den Daten zum Funktionsnamen angeben.
SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function:custom_version', 'us-west-2'), '{"body": "Hello from Postgres!"}'::json);
Weitere Informationen zu qualifier
und anderen Parametern finden Sie in der aws_lambda.invoke-Referenz.