

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.

# Didacticiel : création d’une API REST Gateway avec une intégration de proxy Lambda entre comptes
<a name="apigateway-cross-account-lambda-integrations"></a>

Vous pouvez désormais utiliser une AWS Lambda fonction d'un autre AWS compte comme backend d'intégration d'API. Chaque compte peut se trouver dans n’importe quelle région où Amazon API Gateway est disponible. Cela facilite la gestion centralisée et le partage des fonctions du backend Lambda entre plusieurs. APIs

Dans cette section, nous montrons comment configurer l’intégration de proxy Lambda entre comptes à l’aide de la console Amazon API Gateway.

## Création d’une API pour l’intégration Lambda entre comptes d’API Gateway
<a name="apigateway-cross-account-lambda-integrations-create-api"></a>

**Pour créer une API**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Si vous utilisez API Gateway pour la première fois, vous voyez une page qui vous présente les fonctions du service. Sous **REST API (API REST)**, choisissez **Build (Création)**. Lorsque la fenêtre contextuelle **Create Example API (Créer API exemple)** s’affiche, cliquez sur **OK**.

   Si ce n’est pas la première fois que vous utilisez API Gateway, choisissez **Create API (Créer une API)**. Sous **REST API (API REST)**, choisissez **Build (Création)**.

1.  Sous **API name (Nom de l’API)**, saisissez **CrossAccountLambdaAPI**.

1. (Facultatif) Sous **Description**, entrez une description.

1. Laissez **Type de point de terminaison d’API** défini sur **Régional**.

1. Pour le **type d'adresse IP**, sélectionnez **IPv4**.

1. Sélectionnez **Create API** (Créer une API).

## Création d’une fonction d’intégration Lambda dans un autre compte
<a name="apigateway-cross-account-lambda-integrations-create-lambda-function"></a>

Maintenant, vous allez créer une fonction Lambda dans un compte différent de celui dans lequel vous avez créé l’exemple d’API.

**Création d’une fonction Lambda dans un autre compte**

1. Connectez-vous à la console Lambda dans un compte différent de celui dans lequel vous avez créé votre API Amazon API Gateway.

1. Choisissez **Créer une fonction**.

1. Choisissez **Créer à partir de zéro**.

1. Sous **Author from scratch**, effectuez les étapes suivantes :

   1. Pour **Nom de la fonction**, entrez un nom.

   1. Dans la liste déroulante **Exécution**, choisissez un environnement d’exécution Node.js pris en charge.

   1. Pour **Architecture**, conservez le paramètre par défaut.

   1. Sous **Permissions (Autorisations)**, développez **Choose or create an execution role (Choisir ou créer un rôle d’exécution)**. Vous pouvez créer un rôle ou choisir un rôle existant.

   1. Sélectionnez **Create function** pour continuer.

1. Faites défiler l’écran vers le bas jusqu’au volet **Function code** (Code de fonction).

1. Copiez et collez l’implémentation de la fonction Node.js depuis [Didacticiel : création d’une API REST avec une intégration de proxy Lambda](api-gateway-create-api-as-simple-proxy-for-lambda.md).

1. Choisissez **Deploy (Déployer)**.

1. Notez l’ARN complet de votre fonction (dans le coin supérieur droit du volet de la fonction Lambda). Vous en aurez besoin lors de la création de votre intégration Lambda entre comptes.

## Configuration de l’intégration Lambda entre comptes
<a name="apigateway-cross-account-lambda-integrations-create-integration2"></a>

Une fois que vous disposez d’une fonction d’intégration Lambda dans un autre compte, vous pouvez utiliser la console API Gateway pour l’ajouter à votre API dans votre premier compte.

**Note**  
Si vous configurez un mécanisme d’autorisation inter-compte entre régions, le `sourceArn` qui est ajouté à la fonction cible doit utiliser la région de la fonction, pas la région de l’API.

Une fois que vous avez créé une API, vous créez une ressource. En règle générale, les ressources API sont organisées dans une arborescence des ressources selon la logique de l’application. Pour cet exemple, vous créez une ressource **/helloworld**. 

**Pour créer une ressource**

1. Choisissez **Créer une ressource**.

1. Maintenez **Ressource proxy** désactivée. 

1. Conservez **Chemin de la ressource** sous la forme `/`.

1. Sous **Resource Name (Nom de la ressource)**, entrez **helloworld**.

1. Maintenez **CORS (Partage des ressources entre origines multiples)** désactivé.

1. Choisissez **Créer une ressource**.

Après avoir créé une ressource, vous créez une méthode `GET`. Vous intégrez la méthode `GET` avec une fonction Lambda dans un autre compte. 

**Pour créer une méthode `GET`**

1. Sélectionnez la ressource **/helloworld**, puis choisissez **Créer une méthode**.

1. Pour **Type de méthode**, sélectionnez **GET**.

1. Pour **Type d’intégration**, sélectionnez **Fonction Lambda**.

1. Activez **Intégration de proxy Lambda**.

1. Pour la **fonction Lambda**, entrez l’ARN complet de votre fonction Lambda à l’étape 1. 

   Dans la console Lambda, vous trouverez l’ARN de votre fonction dans le coin supérieur droit de la fenêtre de la console.

1. Lorsque vous entrez l’ARN, une chaîne de commande `aws lambda add-permission` apparaît. Cette politique permet d’accorder à votre premier compte l’accès à la fonction Lambda de votre second compte. Copiez et collez la chaîne de `aws lambda add-permission` commande dans une AWS CLI fenêtre configurée pour votre deuxième compte.

1. Choisissez **Créer une méthode**.

Vous pouvez afficher la politique de mise à jour de votre fonction dans la console Lambda.

**(Facultatif) Pour consulter votre politique mise à jour**

1. Connectez-vous à la AWS Lambda console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choisissez votre fonction Lambda.

1. Choisissez **Permissions**.

   Vous devriez voir une politique `Allow` avec une clause `Condition` dans laquelle l’`AWS:SourceArn` est l’ARN de la méthode `GET` de votre API.