

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.

# Connexion d’Athena à un métastore Hive à l’aide d’un rôle d’exécution IAM existant
<a name="connect-data-source-hive-existing-iam-role"></a>

Pour connecter votre métastore Hive externe à Athena avec une fonction Lambda qui utilise un rôle IAM existant, vous pouvez utiliser l'implémentation de référence du connecteur Athena pour métastore Hive externe.

Les trois étapes principales sont les suivantes :

1. **[Cloner et créer](#connect-data-source-hive-existing-iam-role-clone-and-build-the-lambda-function)** – Clonez l'implémentation de référence Athena et créez le fichier JAR qui contient le code de la fonction Lambda.

1. **[AWS Lambda console](#connect-data-source-hive-existing-iam-role-aws-lambda-console)** — Dans la AWS Lambda console, créez une fonction Lambda, attribuez-lui un rôle d'exécution IAM existant et téléchargez le code de fonction que vous avez généré.

1. **[Console Amazon Athena](connect-data-source-hive-existing-lambda.md)** – Dans la console Amazon Athena, créez un nom de source de données que vous pourrez utiliser pour faire référence à votre métastore Hive externe dans vos requêtes Athena.

Si vous êtes déjà autorisé à créer un rôle IAM personnalisé, vous pouvez utiliser un flux de travail plus simple qui utilise la console Athena pour créer et AWS Serverless Application Repository configurer une fonction Lambda. Pour de plus amples informations, veuillez consulter [Connexion d’Athena à un metastore Apache Hive](connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore.md).

## Conditions préalables
<a name="connect-data-source-hive-existing-iam-role-prerequisites"></a>
+ Git doit être installé sur votre système.
+ Vous devez avoir [Apache Maven](https://maven.apache.org/) installé.
+ Vous avez un rôle d'exécution IAM que vous pouvez attribuer à la fonction Lambda. Pour de plus amples informations, veuillez consulter [Autorisation d'accès des fonctions Lambda aux métastores Hive externes](hive-metastore-iam-access-lambda.md).

## Clonage et création de la fonction Lambda
<a name="connect-data-source-hive-existing-iam-role-clone-and-build-the-lambda-function"></a>

[Le code de fonction pour l'implémentation de référence Athena est un projet Maven situé sur GitHub awslabs/. aws-athena-hive-metastore](https://github.com/awslabs/aws-athena-hive-metastore) Pour des informations détaillées sur le projet, consultez le fichier README correspondant GitHub ou le [Modification du connecteur Athena pour métastore Hive externe](datastores-hive-reference-implementation.md) sujet de cette documentation.

**Clonage et création du code de fonction Lambda**

1. Saisissez la commande suivante pour cloner l'implémentation de référence Athena :

   ```
   git clone https://github.com/awslabs/aws-athena-hive-metastore
   ```

1. Exécutez la commande suivante pour créer le fichier `.jar` pour la fonction Lambda :

   ```
   mvn clean install
   ```

   Une fois le projet crée avec succès, le fichier `.jar` suivant est créé dans le dossier cible de votre projet :

   `hms-lambda-func-1.0-SNAPSHOT-withdep.jar`

   Dans la section suivante, vous allez utiliser la AWS Lambda console pour télécharger ce fichier sur votre compte Amazon Web Services.

## Création et configuration de la fonction Lambda dans la console AWS Lambda
<a name="connect-data-source-hive-existing-iam-role-aws-lambda-console"></a>

Dans cette section, vous allez utiliser la AWS Lambda console pour créer une fonction qui utilise un rôle d'exécution IAM existant. Après avoir configuré un VPC pour la fonction, vous téléchargez le code de la fonction et configurez les variables d'environnement pour la fonction.

### Créer la fonction Lambda
<a name="connect-data-source-hive-existing-iam-role-create-the-lambda-function"></a>

Au cours de cette étape, vous créez une fonction dans la AWS Lambda console qui utilise un rôle IAM existant.

**Création d'une fonction Lambda qui utilise un rôle IAM existant**

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. Dans le volet de navigation, choisissez **Fonctions**.

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

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

1. Dans **Function name** (Nom de la fonction), saisissez le nom de votre fonction Lambda (par exemple, **EHMSBasedLambda**).

1. Pour **Runtime** (Exécution), choisissez **Java 8**.

1. Sous **Permissions** (Autorisations), développez **Change default execution role** (Modifier le rôle d'exécution par défaut).

1. Pour **Execution role (Rôle d'exécution)**, choisissez **Use an existing role (Utilisez un rôle existant)**.

1. Pour **Existing role** (Rôle existant), choisissez le rôle d'exécution IAM que votre fonction Lambda utilisera pour Athena (cet exemple utilise un rôle appelé `AthenaLambdaExecutionRole`).

1. Développez **Advanced settings** (Paramètres avancés).

1. Sélectionnez **Enable Network** (Activer le réseau).

1. Pour **VPC**, choisissez le VPC auquel votre fonction aura accès.

1. Pour **Subnets** (Sous-réseaux), choisissez les sous-réseaux VPC que Lambda doit utiliser.

1. Pour **Security groups** (Groupe de sécurité), choisissez les groupes de sécurité VPC à utiliser pour Lambda.

1. Sélectionnez **Create function** (Créer une fonction). La AWS Lambda console ouvre la page de configuration de votre fonction et commence à créer votre fonction.

### Chargement du code et configuration de la fonction Lambda
<a name="connect-data-source-hive-existing-iam-role-upload-and-configure"></a>

Lorsque la console vous informe que votre fonction a été créée avec succès, vous pouvez télécharger le code de la fonction et configurer ses variables d'environnement.

**Téléchargement du code de votre fonction Lambda et configuration de ses variables d'environnement**

1. Dans la console Lambda, assurez-vous que vous êtes sur l'onglet **Code** de la page de la fonction que vous avez spécifiée.

1. Pour **Code source** (Code source), choisissez **Upload from** (Charger depuis) puis choisissez **.zip or .jar file** (fichier .zip ou .jar).

1. Téléchargement du fichier `hms-lambda-func-1.0-SNAPSHOT-withdep.jar` généré précédemment.

1. Sur la page de la fonction Lambda, choisissez l'onglet **Configuration**.

1. Dans le panneau de gauche, choisissez **Environment variables** (Variables d'environnement).

1. Dans la section **Environment variables** (Variables d'environnement), choisissez **Edit** (Modifier).  
![\[Choisissez Edit (Modifier) pour modifier les variables d'environnement de la fonction Lambda.\]](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/images/connect-data-source-hive-existing-iam-role-5.png)

1. Sur la page **Edit environment variables** (Modifier les variables d'environnement), utilisez l'option **Add environment variable** (Ajouter une variable d'environnement) pour ajouter les clés et les valeurs des variables d'environnement suivantes :
   + **HMS\$1URIS** – Utilisez la syntaxe suivante pour saisir l'URI de votre hôte de métastore Hive qui utilise le protocole Thrift au port 9083.

     ```
     thrift://<host_name>:9083
     ```
   + **SPILL\$1LOCATION** – Spécifiez un emplacement Amazon S3 dans votre compte Amazon Web Services pour contenir les métadonnées de débordement si la taille de la réponse de la fonction Lambda dépasse 4 Mo.  
![\[Spécification des valeurs pour les variables d'environnement de la fonction Lambda.\]](http://docs.aws.amazon.com/fr_fr/athena/latest/ug/images/connect-data-source-hive-existing-iam-role-6.png)

1. Choisissez **Enregistrer**.

À ce stade, vous êtes prêt à configurer Athena pour qu'il utilise votre fonction Lambda afin de se connecter à votre métastore Hive. Pour les étapes, consultez [Configuration d'Athena pour utiliser un connecteur de métastore Hive déployé](connect-data-source-hive-existing-lambda.md).