

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à.

# Connessione a un'API REST
<a name="connecting-to-data-rest-api"></a>

 AWS Glue consente di configurare un file AWS Glue ConnectionType che può essere utilizzato per connettersi AWS Glue a qualsiasi fonte di dati basata su API REST. Questo può essere usato come fonte di dati nei tuoi lavori ETL. È possibile eseguire questi processi per trasferire dati tra l'origine dati basata sull'API REST e i AWS servizi o altre applicazioni supportate. 

**Topics**
+ [

# AWS Glue supporto per l'API REST
](rest-api-support.md)
+ [

# Politiche contenenti le operazioni API per la registrazione dei tipi di connessione e creating/using delle connessioni
](rest-api-configuring-iam-permissions.md)
+ [

# Configurazione di un'API REST ConnectionType
](rest-api-configuring.md)
+ [

# Configurazione di una connessione API REST
](rest-api-configuring-connections.md)
+ [

# Tutorial: creazione di un'API REST ConnectionType e di una connessione
](rest-api-example.md)
+ [

# Limitazioni
](rest-api-limitations.md)

# AWS Glue supporto per l'API REST
<a name="rest-api-support"></a>

AWS Glue supporta l'API REST come segue:

**Supportato come origine?**  
Sì. È possibile utilizzare i job AWS Glue ETL per interrogare i dati da un'origine dati basata su API REST.

**Supportato come destinazione?**  
No.

# Politiche contenenti le operazioni API per la registrazione dei tipi di connessione e creating/using delle connessioni
<a name="rest-api-configuring-iam-permissions"></a>

 La seguente policy IAM di esempio descrive le autorizzazioni richieste per la registrazione, la creazione, la gestione e l'utilizzo delle connessioni API REST all'interno AWS Glue dei job ETL. Se si sta creando un nuovo ruolo, creare una policy che contenga quanto segue: 

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:RegisterConnectionType",
                "glue:ListConnectionTypes",
                "glue:DescribeConnectionType",
                "glue:CreateConnection",
                "glue:RefreshOAuth2Tokens",
                "glue:ListEntities",
                "glue:DescribeEntity"
            ],
            "Resource": "*"
        }
    ]
}
```

È anche possibile utilizzare le seguenti policy IAM per autorizzare l'accesso:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Garantisce l'accesso alle risorse che AWS Glue i vari processi richiedono per l'esecuzione per tuo conto. Queste risorse includono Amazon S3 AWS Glue, IAM, CloudWatch Logs e Amazon EC2. Se segui la convenzione di denominazione delle risorse specificata in questa politica, AWS Glue i processi dispongono delle autorizzazioni necessarie. Questa policy è in genere collegata ai ruoli specificati quando si definiscono crawler, processi ed endpoint di sviluppo.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Concede l'accesso completo alle AWS Glue risorse quando un'identità a cui è allegata la policy utilizza la AWS console di gestione. Se si segue la convenzione per la denominazione per le risorse specificate nella policy, gli utenti hanno la piena funzionalità della console. Questa policy è in genere associata agli utenti della AWS Glue console.

Se si forniscono opzioni di rete durante la creazione di una connessione API REST, nel ruolo IAM devono essere incluse anche le seguenti azioni:

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:DescribeSecret",
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        }
    ]
}
```

# Configurazione di un'API REST ConnectionType
<a name="rest-api-configuring"></a>

 Prima di poterli utilizzare AWS Glue per trasferire dati dall'origine dati basata sull'API REST, devi soddisfare questi requisiti: 

## Requisiti minimi
<a name="rest-api-configuring-min-requirements"></a>

I requisiti minimi sono i seguenti:
+  Hai configurato e registrato un tipo di connessione API AWS Glue REST. Vedi [Connessione a REST APIs](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html). 
+  Se utilizzi le credenziali OAuth2 del cliente, il codice di autorizzazione o JWT, configura l'app client di conseguenza. 

 Se soddisfi questi requisiti, sei pronto per connetterti AWS Glue alla tua fonte di dati basata sull'API REST. In genere, non sono necessarie ulteriori configurazioni sul lato dell'API REST. 

# Configurazione di una connessione API REST
<a name="rest-api-configuring-connections"></a>

 Per configurare un connettore API AWS Glue REST, è necessario configurare un tipo di AWS Glue connessione. Questo tipo di connessione contiene dettagli sulle proprietà del funzionamento dell'origine dati REST e interpreta elementi come autenticazione, richieste, risposte, impaginazione, convalide ed entità/metadati. [Per un elenco completo delle proprietà richieste per un tipo di connessione AWS Glue REST, consulta l'[ RegisterConnectionType](https://docs.aws.amazon.com/glue/latest/webapi/API_DescribeConnectionType.html)API e i passaggi per la connessione a REST. APIs](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html) 

 Quando si crea il connettore API REST, è necessaria la seguente politica per consentire le azioni pertinenti: 

```
{
    "Version":"2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:RegisterConnectionType",
                "glue:ListConnectionTypes",
                "glue:DescribeConnectionType",
                "glue:CreateConnection",
                "secretsmanager:DescribeSecret",
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        }
    ]
}
```

# Tutorial: creazione di un'API REST ConnectionType e di una connessione
<a name="rest-api-example"></a>

**Connessione all'API REST di Foo**

 Creeremo un'API AWS Glue REST ConnectionType e una AWS Glue connessione corrispondente per l'API REST di Foo. Questa API ha le seguenti proprietà (che possono essere recuperate dalla documentazione dell'API REST). 
+  **URL dell'istanza**: https://foo.cloud.com/rest/ v1. 
+  **Tipo di autenticazione**: OAuth2 (credenziali del cliente). 
+  **Metodo REST**: GET. 
+  **Tipo di impaginazione**: Offset con le proprietà «limit» e «offset» inserite nel parametro di query della richiesta. 
+ **Entità supportate:**
  +  **Barra**: percorso relativo [/bar.json]. 
  +  **Baz**: percorso relativo [/baz.json]. 

 Una volta ottenuti tutti i dettagli, possiamo iniziare a creare la AWS Glue connessione all'API REST di Foo. 

**Per creare una connessione API REST**:

1.  Crea il tipo di connessione API REST AWS Glue chiamando l' RegisterConnectionType API tramite AWS API, CLI o SDK. Questo creerà una nuova ConnectionType risorsa in. AWS Glue

   ```
   {
       "ConnectionType": "REST-FOO-CONNECTOR",
       "IntegrationType": "REST",
       "Description": "AWS Glue Connection Type for the FOO REST API",
       "ConnectionProperties": {
           "Url": {
               "Name": "Url",
               "Required": true,
               "DefaultValue": "https://foo.cloud.com/rest/v1",
               "PropertyType": "USER_INPUT"
           }
       },
       "ConnectorAuthenticationConfiguration": {
           "AuthenticationTypes": ["OAUTH2"],
           "OAuth2Properties": {
               "OAuth2GrantType": "CLIENT_CREDENTIALS"
           }
       },
       "RestConfiguration": {
           "GlobalSourceConfiguration": {
           "RequestMethod": "GET",
           "ResponseConfiguration": {
               "ResultPath": "$.result",
               "ErrorPath": "$.error.message"
           },
           "PaginationConfiguration": {
               "OffsetConfiguration": {
                   "OffsetParameter": {
                       "Key": "offset",
                       "PropertyLocation": "QUERY_PARAM"
                   },
                   "LimitParameter": {
                       "Key": "limit",
                       "PropertyLocation": "QUERY_PARAM",
                       "DefaultValue": "50"
                   }
               }
           }
       },
       "ValidationEndpointConfiguration": {
           "RequestMethod": "GET",
           "RequestPath": "/bar.json?offset=1&limit=10"
       },
       "EntityConfigurations": {
           "bar": {
               "SourceConfiguration": {
                   "RequestMethod": "GET",
                   "RequestPath": "/bar.json",
                   "ResponseConfiguration": {
                       "ResultPath": "$.result",
                       "ErrorPath": "$.error.message"
                   }
               },
               "Schema": {
                   "name": {
                       "Name": "name",
                       "FieldDataType": "STRING"
                   },
                   "description": {
                       "Name": "description",
                       "FieldDataType": "STRING"
                   },
                   "id": {
                       "Name": "id",
                       "FieldDataType": "STRING"
                   },
                   "status": {
                       "Name": "status",
                       "FieldDataType": "STRING"
                   }
               }
           }
       }
   }
   }
   ```

1.  In AWS Secrets Manager, crea un segreto. Il segreto deve contenere l'app connessa Consumer Secret con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` come chiave. 
**Nota**  
È necessario creare un segreto per ogni connessione in AWS Glue

1.  Crea la AWS Glue connessione chiamando l' CreateConnection API utilizzando l' AWS API, la CLI o l'SDK. 

   1.  Fai riferimento al nome del tipo di connessione REST del passaggio 1 come «»ConnectionType. 

   1.  Fornisci il InstanceUrl e tutti gli altri ConnectionProperties che sono stati definiti durante il processo di AWS Glue ConnectionType registrazione. 

   1.  Scegli tra i tipi di autenticazione configurati. L'API REST utilizzata da Foo OAuth2 con il tipo di ClientCredentials concessione. 

   1.  Fornisci **SecretArn**e altri **AuthenticationProperties**che sono configurati. Ad esempio, abbiamo configurato `OAUTH2` come tale, AuthenticationType quindi imposteremo le «OAuth2Proprietà» in CreateConnectionInput. Ciò richiederà proprietà come «OAuth2GrantType», «TokenUrl» e «OAuth2ClientApplication». 

1.  Effettua la CreateConnection richiesta che creerà la AWS Glue connessione. 

   ```
   {
       "ConnectionInput": {
           "Name": "ConnectionFooREST",
           "ConnectionType": "REST-FOO-CONNECTOR",
           "ConnectionProperties": {},
           "ValidateCredentials": true,
           "AuthenticationConfiguration": {
               "AuthenticationType": "OAUTH2",
               "SecretArn": "arn:aws:secretsmanager:<region>:<accountId>:secret:<secretId>",
               "OAuth2Properties": {
                   "OAuth2GrantType": "CLIENT_CREDENTIALS",
                   "TokenUrl": "https://foo.cloud.com/oauth/token",
                   "OAuth2ClientApplication": {
                       "UserManagedClientApplicationClientId": "your-managed-client-id"
                   }
               }
           }
       }
   }
   ```

# Limitazioni
<a name="rest-api-limitations"></a>

Di seguito sono riportate le limitazioni per il connettore API REST
+  Il connettore API REST è disponibile solo tramite AWS API, CLI o SDK. Non è possibile configurare i connettori REST tramite la console. 
+  Il AWS Glue REST ConnectionType può essere configurato solo per LEGGERE i dati dall'origine dati basata sull'API REST. La connessione può essere utilizzata solo come SOURCE nei job AWS Glue ETL. 
+  Il filtraggio e il partizionamento non sono supportati. 
+  La selezione dei campi non è supportata. 