

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 instance de base de données RDS pour PostgreSQL
<a name="PostgreSQL-Lambda-examples"></a>

Ci-dessous, vous pouvez trouver plusieurs exemples d’appel de la fonction [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#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 instance de base de données RDS pour PostgreSQL (Facultatif)](PostgreSQL-Lambda.md#PostgreSQL-Lambda-specify-function) 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](#PostgreSQL-Lambda-Event). 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](https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html) dans le *Guide du développeur AWS Lambda *. Pour plus d’informations sur `aws_lambda_arn_1`, consultez [aws\$1commons.create\$1lambda\$1function\$1arn](PostgreSQL-Lambda-functions.md#aws_commons.create_lambda_function_arn). 

**Topics**
+ [Exemple : appel synchrone (RequestResponse) de fonctions Lambda](#PostgreSQL-Lambda-RequestResponse)
+ [Exemple : appel asynchrone (Event) de fonctions Lambda](#PostgreSQL-Lambda-Event)
+ [Exemple : capture du journal d’exécution Lambda dans une réponse de fonction](#PostgreSQL-Lambda-log-response)
+ [Exemple : inclusion du contexte client dans une fonction Lambda](#PostgreSQL-Lambda-client-context)
+ [Exemple : appel d’une version spécifique d’une fonction Lambda](#PostgreSQL-Lambda-function-version)

## Exemple : appel synchrone (RequestResponse) de fonctions Lambda
<a name="PostgreSQL-Lambda-RequestResponse"></a>

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 instance de base de données RDS pour PostgreSQL (Facultatif)](PostgreSQL-Lambda.md#PostgreSQL-Lambda-specify-function), avec la fonction d’assistance `aws_commons.create_lambda_function_arn`. Vous pouvez également créer cette structure en ligne dans votre appel `aws_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` : données utiles JSON à passer à la fonction Lambda.
+ `'RequestResponse'` : type d’appel Lambda.

## Exemple : appel asynchrone (Event) de fonctions Lambda
<a name="PostgreSQL-Lambda-Event"></a>

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
<a name="PostgreSQL-Lambda-log-response"></a>

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\$1lambda.invoke](PostgreSQL-Lambda-functions.md#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\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke).

## Exemple : inclusion du contexte client dans une fonction Lambda
<a name="PostgreSQL-Lambda-client-context"></a>

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\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke) de la fonction `context`.

Pour plus d’informations sur le paramètre `context`, consultez la référence [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke). 

## Exemple : appel d’une version spécifique d’une fonction Lambda
<a name="PostgreSQL-Lambda-function-version"></a>

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 `'custom_version'` comme alias pour la 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\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke).