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 : Invocation de fonctions Lambda depuis votre de base de données Aurora SQL Postgre pour une instance de base de données Postgre SQL
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 Étape 4 : Utiliser les fonctions d'assistance Lambda avec votre cluster de SQL base de données Aurora Postgre RDS (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'invocation Lambda, consultez la section Invocation de fonctions Lambda dans le AWS Lambda Guide du développeur. 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
- Exemple : appel asynchrone (Event) de fonctions Lambda
- Exemple : capture du journal d'exécution Lambda dans une réponse de fonction
- Exemple : inclusion du contexte client dans une fonction Lambda
- Exemple : appel d'une version spécifique d'une fonction Lambda
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 SQL base de données Aurora Postgre RDS (facultatif), avec la fonction d'assistanceaws_commons.create_lambda_function_arn
. Vous pouvez également créer cette structure en ligne dans votre appelaws_lambda.invoke
comme 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
— La JSON charge utile à transmettre à 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 en combinant les fonctions decode
et convert_from
PostgreSQL.
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 du client, utilisez un JSON objet pour le context
paramètre de la aws_lambda.invoke fonction.
Pour plus d'informations sur le paramètre context
, veuillez consulter 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 de plus amples informations sur qualifier
et d'autres paramètres, veuillez consulter la référence aws_lambda.invoke.