

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Collega Athena a un metastore Hive utilizzando un ruolo di esecuzione IAM esistente
<a name="connect-data-source-hive-existing-iam-role"></a>

Per connettere il metastore Hive esterno ad Athena con una funzione Lambda che utilizza un ruolo IAM esistente, è possibile utilizzare l'implementazione di riferimento di Athena del connettore Athena per il metastore Hive esterno.

Le tre fasi principali sono le seguenti:

1. **[Clona e Costruisci](#connect-data-source-hive-existing-iam-role-clone-and-build-the-lambda-function)**: clona l'implementazione di riferimento Athena e crea il file JAR che contiene il codice funzione Lambda.

1. **[AWS Lambda console](#connect-data-source-hive-existing-iam-role-aws-lambda-console)**: nella AWS Lambda console, crea una funzione Lambda, assegnale un ruolo di esecuzione IAM esistente e carica il codice della funzione che hai generato.

1. **[Console Amazon Athena](connect-data-source-hive-existing-lambda.md)**: nella console Amazon Athena, crea un nome di origine dati che puoi usare per fare riferimento al tuo metastore Hive esterno nelle query Athena.

Se disponi già delle autorizzazioni per creare un ruolo IAM personalizzato, puoi utilizzare un flusso di lavoro più semplice che utilizza la console Athena e AWS Serverless Application Repository per creare e configurare una funzione Lambda. Per ulteriori informazioni, consulta [Connect Athena a un metastore Apache Hive](connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore.md).

## Prerequisiti
<a name="connect-data-source-hive-existing-iam-role-prerequisites"></a>
+ Git deve essere installato sul sistema.
+ È necessario avere [Apache Maven](https://maven.apache.org/) installato.
+ Hai un ruolo di esecuzione IAM che puoi assegnare alla funzione Lambda. Per ulteriori informazioni, consulta [Consentire l'accesso alla funzione Lambda a metastore Hive esterni](hive-metastore-iam-access-lambda.md).

## Clona e costruisci la funzione Lambda
<a name="connect-data-source-hive-existing-iam-role-clone-and-build-the-lambda-function"></a>

[Il codice della funzione per l'implementazione di riferimento di Athena è un progetto Maven situato su awslabs/. GitHub aws-athena-hive-metastore](https://github.com/awslabs/aws-athena-hive-metastore) Per informazioni dettagliate sul progetto, consulta il file README corrispondente su GitHub o l'argomento di questa documentazione. [Modificare il connettore metastore Hive esterno Athena](datastores-hive-reference-implementation.md)

**Per clonare e costruire il codice della funzione Lambda**

1. Inserire il seguente comando per clonare l'implementazione di riferimento Athena:

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

1. Eseguire il comando seguente per creare il file `.jar` per la funzione Lambda:

   ```
   mvn clean install
   ```

   Dopo che il progetto è stato creato correttamente, il seguente file `.jar` viene creato nella cartella di destinazione del tuo progetto:

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

   Nella sezione successiva, usi la AWS Lambda console per caricare questo file sul tuo account Amazon Web Services.

## Crea e configura la funzione Lambda nella console AWS Lambda
<a name="connect-data-source-hive-existing-iam-role-aws-lambda-console"></a>

In questa sezione, si utilizza la AWS Lambda console per creare una funzione che utilizza un ruolo di esecuzione IAM esistente. Dopo aver configurato un VPC per la funzione, carica il codice della funzione e configura le variabili di ambiente per la funzione.

### Creazione della funzione Lambda
<a name="connect-data-source-hive-existing-iam-role-create-the-lambda-function"></a>

In questo passaggio, crei una funzione nella AWS Lambda console che utilizza un ruolo IAM esistente.

**Per creare una funzione Lambda che utilizza un ruolo IAM esistente**

1. Accedi a Console di gestione AWS e apri la AWS Lambda console all'indirizzo [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Nel riquadro di navigazione, seleziona **Funzioni**.

1. Selezionare **Create function (Crea funzione)**.

1. Scegli **Author from scratch** (Crea da zero).

1. In **Nome funzione**, inserisci il nome della funzione Lambda (ad esempio, **EHMSBasedLambda**).

1. Per **Runtime**, scegliere **Java 8**.

1. In **Autorizzazioni** espandere **Modifica ruolo di esecuzione predefinito**.

1. In **Execution role (Ruolo di esecuzione)**, scegliere **Use an existing role (Utilizza un ruolo esistente)**.

1. Per **Ruolo esistente**, scegli il ruolo di esecuzione IAM che la tua funzione Lambda utilizzerà per Athena (questo esempio utilizza un ruolo chiamato `AthenaLambdaExecutionRole`).

1. Espandere **Advanced settings (Impostazioni avanzate)**.

1. Seleziona **Enable Network** (Abilita la rete).

1. Per **VPC**, scegli il VPC a cui la tua funzione avrà accesso.

1. Per **Sottoreti**, scegli le sottoreti VPC che utilizzerà Lambda.

1. Per **Gruppi di sicurezza**, scegli i gruppi di sicurezza VPC che utilizzerà Lambda.

1. Scegli **Crea funzione**. La AWS Lambda console apre la pagina di configurazione della funzione e inizia a creare la funzione.

### Carica il codice e configura la funzione Lambda
<a name="connect-data-source-hive-existing-iam-role-upload-and-configure"></a>

Quando la console informa che la funzione è stata creata correttamente, è possibile caricare il codice della funzione e configurarne le variabili di ambiente.

**Per caricare il codice della funzione Lambda e configurare le variabili di ambiente**

1. Nella console Lambda, assicurati di utilizzare la scheda **Code** (Codice) della pagina della funzione specificata.

1. Per **Code source** (Origine codice), scegli **Upload from** (Carica da), quindi scegli **.zip or .jar file** (file .zip o .jar).

1. Carica il file `hms-lambda-func-1.0-SNAPSHOT-withdep.jar` generato in precedenza.

1. Nella pagina della funzione Lambda, scegli la scheda **Configuration** (Configurazione).

1. Dal riquadro a sinistra, scegli **Environment variables** (Variabili di ambiente).

1. Nella sezione **Variabili di ambiente**, scegliere **Modifica**.  
![Scegliere Modifica per modificare le variabili di ambiente per la funzione Lambda.](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/connect-data-source-hive-existing-iam-role-5.png)

1. Nella pagina **Edit environment variables** (Modifica variabili di ambiente), utilizza l'opzione **Add environment variable** (Aggiungi variabile di ambiente) per aggiungere le chiavi e i valori delle variabili di ambiente seguenti:
   + **HMS\_URIS**: usa la seguente sintassi per inserire l'URI dell'host del metastore Hive che utilizza il protocollo Thrift alla porta 9083.

     ```
     thrift://{{<host_name>}}:9083
     ```
   + **SPILL\_LOCATION**: specifica una posizione Amazon S3 nell'account Amazon Web Services per contenere metadati di spillover se la dimensione di risposta della funzione Lambda supera i 4 MB.  
![Specifica dei valori per le variabili di ambiente della funzione Lambda.](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/connect-data-source-hive-existing-iam-role-6.png)

1. Scegli **Save** (Salva).

A questo punto, puoi configurare Athena per utilizzare la funzione Lambda per connetterti al metastore Hive. Per le fasi, consulta [Configurazione di Athena per l'utilizzo di un connettore Hive Metastore distribuito](connect-data-source-hive-existing-lambda.md).