Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemples : appel de fonctions Lambda à partir de votre cluster de bases de données Aurora PostgreSQL
Ci-dessous, vous pouvez trouver plusieurs exemples d’appel de la fonction aws_lambda.invoke. La plupart des exemples utilisent la structure composite aws_lambda_arn_1 que vous créez dans Étape 4 : utiliser les fonctions d’assistance Lambda avec votre cluster de bases de données Aurora PostgreSQL (Facultatif) pour simplifier la transmission des détails de la fonction. Pour obtenir un exemple d’appel asynchrone, reportez-vous à la section Exemple : appel asynchrone (Event) de fonctions Lambda. Tous les autres exemples répertoriés utilisent l’appel synchrone.
Pour en savoir plus sur les types d’appel Lambda, consultez Appel de fonctions Lambda dans le Guide du développeur AWS Lambda. Pour plus d’informations sur aws_lambda_arn_1, consultez aws_commons.create_lambda_function_arn.
Liste d’exemples
Exemple : appel synchrone (RequestResponse) de fonctions Lambda
Voici deux exemples d’appel synchrone de fonction Lambda. Les résultats de ces appels de fonction aws_lambda.invoke sont identiques.
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');
Les paramètres sont décrits comme suit :
-
:'aws_lambda_arn_1'— Ce paramètre identifie la structure composite créée dans Étape 4 : utiliser les fonctions d’assistance Lambda avec votre cluster de bases de données Aurora PostgreSQL (Facultatif), avec la fonction d’assistanceaws_commons.create_lambda_function_arn. Vous pouvez également créer cette structure en ligne dans votre appelaws_lambda.invokecomme suit.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: données utiles JSON à passer à la fonction Lambda. -
'RequestResponse'– Type d’appel Lambda.
Exemple : appel asynchrone (Event) de fonctions Lambda
Voici un exemple d’appel de fonction Lambda asynchrone. Le type d’appel Event planifie l’appel de fonction Lambda avec la charge utile d’entrée spécifiée et renvoie une réponse immédiatement. Utiliser le type d’appel Event dans certains flux de travail qui ne dépendent pas des résultats de la fonction Lambda.
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'Event');
Exemple : capture du journal d’exécution Lambda dans une réponse de fonction
Vous pouvez inclure les 4 derniers Ko du journal d’exécution dans la réponse de la fonction à l’aide du paramètre log_type dans votre appel de fonction aws_lambda.invoke. Par défaut, ce paramètre est défini sur None, mais vous pouvez spécifier Tail afin de capturer les résultats du journal d’exécution Lambda dans la réponse, comme indiqué ci-dessous.
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');
Définissez le paramètre aws_lambda.invoke de la fonction log_type sur Tail pour inclure le journal d’exécution dans la réponse. La valeur par défaut du paramètre log_type est None.
Le log_result qui est retourné est une chaîne base64 encodée. Vous pouvez décoder le contenu à l’aide d’une combinaison des fonctions PostgreSQL decode et convert_from.
Pour plus d’informations sur log_type, consultez aws_lambda.invoke.
Exemple : inclusion du contexte client dans une fonction Lambda
La fonction aws_lambda.invoke possède un paramètre context que vous pouvez utiliser pour transférer des informations séparées de la charge utile, comme indiqué ci-dessous.
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');
Pour inclure le contexte client, utilisez un objet JSON pour le paramètre aws_lambda.invoke de la fonction context.
Pour plus d’informations sur le paramètre context, consultez la référence aws_lambda.invoke.
Exemple : appel d’une version spécifique d’une fonction Lambda
Vous pouvez spécifier une version particulière d’une fonction Lambda en incluant le paramètre qualifier avec l’appel aws_lambda.invoke. Vous trouverez ci-dessous un exemple de ce procédé qui utilise ' comme alias pour la version.custom_version'
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'None', NULL, 'custom_version');
Vous pouvez également fournir un qualificatif de fonction Lambda avec les informations de nom de la fonction à la place, comme suit.
SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function:custom_version', 'us-west-2'), '{"body": "Hello from Postgres!"}'::json);
Pour plus d’informations sur qualifier et d’autres paramètres, consultez la référence aws_lambda.invoke.