

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 Twilio
<a name="connecting-to-data-twilio"></a>

Twilio fornisce strumenti di comunicazione programmabili per effettuare e ricevere telefonate, inviare e ricevere messaggi di testo ed eseguire altre funzioni di comunicazione utilizzando il proprio servizio web. APIs Twilio APIs alimenta la sua piattaforma per le comunicazioni. Alla base di tutto ciò c' APIs è un livello software che collega e ottimizza le reti di comunicazione in tutto il mondo per consentire agli utenti di chiamare e inviare messaggi a chiunque, a livello globale. Come utente Twilio, puoi connetterti AWS Glue al tuo account Twilio. Quindi, puoi usare Twilio come origine dati nei tuoi processi ETL. Esegui questi lavori per trasferire dati tra Twilio e i AWS servizi o altre applicazioni supportate.

**Topics**
+ [AWS Glue supporto per Twilio](twilio-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](twilio-configuring-iam-permissions.md)
+ [Configurazione di Twilio](twilio-configuring.md)
+ [Configurazione delle connessioni Twilio](twilio-configuring-connections.md)
+ [Lettura da entità Twilio](twilio-reading-from-entities.md)
+ [Opzioni di connessione di Twilio](twilio-connection-options.md)
+ [Limitazioni e note per il connettore di Twilio](twilio-connector-limitations.md)

# AWS Glue supporto per Twilio
<a name="twilio-support"></a>

AWS Glue supporta Twilio come segue:

**Supportato come origine?**  
Sì. È possibile utilizzare i job AWS Glue ETL per interrogare i dati di Twilio.

**Supportato come destinazione?**  
No.

**Versioni API di Twilio supportate**  
Sono supportate le seguenti versioni API di Twilio:
+ v1
+ 2010-04-01

# Policy contenenti le operazioni API per creare e utilizzare le connessioni
<a name="twilio-configuring-iam-permissions"></a>

La seguente policy di esempio descrive le autorizzazioni AWS IAM richieste per la creazione e l'utilizzo delle connessioni. Se si sta creando un nuovo ruolo, creare una policy che contenga quanto segue:

------
#### [ JSON ]

****  

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

------

In alternativa, se non desideri utilizzare il metodo precedente, utilizza le seguenti policy IAM gestite:
+ [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 conto dell'utente. Queste risorse includono AWS Glue Amazon S3, 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 richieste. 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.

# Configurazione di Twilio
<a name="twilio-configuring"></a>

Prima di poter AWS Glue utilizzare il trasferimento di dati da Twilio, devi soddisfare questi requisiti:

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

I requisiti minimi sono i seguenti:
+ Avere un account Twilio con nome utente e password.
+ L'account Twilio è abilitato per l'accesso alle API.

Se soddisfi questi requisiti, sei pronto per connetterti AWS Glue al tuo account Twilio. Per le connessioni tipiche, non è necessario fare nient'altro in Twilio.

# Configurazione delle connessioni Twilio
<a name="twilio-configuring-connections"></a>

Twilio supporta nome utente e password per l'autenticazione di base. L'autenticazione di base è un metodo di autenticazione semplice in cui i client forniscono direttamente le credenziali per accedere alle risorse protette. AWS Glue è in grado di utilizzare il nome utente (Account SID) e la password (Auth Token) per autenticare Twilio. APIs

Per la documentazione pubblica di Twilio per il flusso di autenticazione di base, consultare [Autenticazione di base \$1 Twilio](https://www.twilio.com/docs/glossary/what-is-basic-authentication).

Per configurare una connessione di Twilio:

1. In AWS Secrets Manager, crea un segreto con i seguenti dettagli:
   + Per l'autenticazione di base: il segreto deve contenere l'app connessa Consumer Secret con il **SID dell'account** (nome utente) e il **token di autenticazione** (password).
**Nota**  
Devi creare un segreto per le tue connessioni in AWS Glue.

1. In AWS Glue Glue Studio, crea una connessione in **Connessioni dati** seguendo i passaggi seguenti:

   1. In **Tipo di connessione**, selezionare Twilio.

   1. Fornire `[Edge\$1Location](https://www.twilio.com/docs/global-infrastructure/edge-locations)` dell'istanza Twilio a cui connettersi.

   1. Seleziona il ruolo AWS IAM che AWS Glue può assumere e dispone delle autorizzazioni per le seguenti azioni:

------
#### [ JSON ]

****  

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

------

   1. Seleziona quello `secretName` che desideri utilizzare per questa connessione per AWS Glue inserire i token.

   1. Selezionare le opzioni di rete se si desidera utilizzare la propria rete.

1. Concedi il permesso di lettura `secretName` al ruolo IAM associato al tuo AWS Glue lavoro.

# Lettura da entità Twilio
<a name="twilio-reading-from-entities"></a>

**Prerequisito**

Un oggetto di Twilio da cui si desidera leggere. È necessario il nome dell'oggetto, come `SMS-Message` o `SMS-CountryPricing`.

**Entità supportate come origine**:


| Entità | Interfaccia | Può essere Filtrato | Supporta limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta il partizionamento | 
| --- | --- | --- | --- | --- | --- | --- | 
| SMS-Message | REST | Sì  | Sì | No | Sì | Sì | 
| SMS- CountryPricing | REST | No | No | No | Sì | No | 
| Voice-Call | REST | Sì  | Sì | No | Sì | No | 
| Voice-Application | REST | Sì  | Sì | No | Sì | No | 
| OutgoingCallerIdentificazione vocale | REST | Sì  | Sì | No | Sì | No | 
| Voice-Queue | REST | Sì  | Sì | No | Sì | No | 
| Conversations-Conversation | REST | Sì  | Sì | No | Sì | No | 
| Conversations-User | REST | No | Sì | No | Sì | No | 
| Conversations-Role | REST | No | Sì | No | Sì | No | 
| Conversations-Configuration | REST | No | No | No | Sì | No | 
| Conversazioni- AddressConfiguration | REST | Sì  | Sì | No | Sì | No | 
| Conversazioni- WebhookConfiguration | REST | No | No | No | Sì | No | 
| Conversazioni- ParticipantConversation | REST | No | No | No | Sì | No | 
| Conversations-Credential | REST | No | Sì | No | Sì | No | 
| Conversazioni- ConversationService | REST | No | Sì | No | Sì | No | 

**Esempio**:

```
twilio_read = glueContext.create_dynamic_frame.from_options(
    connection_type="twilio",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "sms-message",
        "API_VERSION": "2010-04-01",
        "Edge_Location": "sydney.us1"
    }
```

**Dettagli dell'entità e del campo di Twilio**

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/twilio-reading-from-entities.html)

## Query di partizionamento
<a name="twilio-reading-partitioning-queries"></a>

**Campi che supportano il partizionamento**:

In Twilio, i campi del DateTime tipo di dati supportano il partizionamento basato sul campo.

Puoi fornire le opzioni Spark aggiuntive `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se desideri utilizzare la concorrenza in Spark. Con questi parametri, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.
+ `PARTITION_FIELD`: il nome del campo da utilizzare per partizionare la query.
+ `LOWER_BOUND`: un valore limite inferiore **inclusivo** del campo di partizione scelto.

  Per il campo Datetime accettiamo il formato di timestamp Spark utilizzato nelle query SQL di Spark.

  Esempi di valori validi:

  ```
  "2024-05-01T20:55:02.000Z"
  ```
+ `UPPER_BOUND`: un valore limite superiore **esclusivo** del campo di partizione scelto.
+ `NUM_PARTITIONS`: il numero di partizioni.

Esempio:

```
twilio_read = glueContext.create_dynamic_frame.from_options(
    connection_type="twilio",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "sms-message",
        "API_VERSION": "2010-04-01",
        "PARTITION_FIELD": "date_sent"
        "LOWER_BOUND": "2024-05-01T20:55:02.000Z"
        "UPPER_BOUND": "2024-06-01T20:55:02.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# Opzioni di connessione di Twilio
<a name="twilio-connection-options"></a>

Di seguito sono riportate le opzioni di connessione per Twilio:
+ `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura. Il nome dell'oggetto in Twilio.
+ `EDGE_LOCATION`(String): (obbligatorio) una posizione edge valida di Twilio.
+ `API_VERSION`(String): (obbligatorio) utilizzato per la lettura. Versione dell'API Rest di Twilio da utilizzare. Twilio supporta due versioni dell'API: "v1" e "2010-04-01".
+ `SELECTED_FIELDS`(List<String>): predefinito: vuoto (SELECT \$1). Utilizzato per la lettura. Colonne da selezionare per l'oggetto.
+ `FILTER_PREDICATE`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Dev'essere in formato Spark SQL.
+ `QUERY`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Query Spark SQL completa.
+ `PARTITION_FIELD`(Stringa): utilizzato per la lettura. Campo da utilizzare per partizionare la query.
+ `LOWER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite inferiore inclusivo del campo di partizione scelto.
+ `UPPER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite superiore esclusivo del campo di partizione scelto.
+ `NUM_PARTITIONS`(Numero intero): predefinito: 1. Utilizzato per la lettura. Numero di partizioni da leggere.
+ `INSTANCE_URL`(Stringa): (obbligatorio) utilizzato per la lettura. Un URL di istanza valido di Twilio.

# Limitazioni e note per il connettore di Twilio
<a name="twilio-connector-limitations"></a>

Di seguito sono riportate le limitazioni o le note per il connettore di Twilio:
+ Il partizionamento basato su record non è supportato, in quanto non è previsto il recupero del numero totale di record da Twilio.
+ I campi `date_sent`, `start_time` e `end_time` sono del tipo di dati Datetime, ma durante il filtraggio supportano solo i valori di data (i componenti temporali non vengono considerati).
+ Il filtraggio dei campi “da” o “a” funziona solo se i valori non includono alcun prefisso (ad esempio, un protocollo o un'etichetta). Se è presente un prefisso, il filtraggio per il rispettivo campo non funziona. Ad esempio, se si passa “a”: “whatsapp: \$114xxxxxxxxxx” come filtro, Twilio non restituirà una risposta. Occorre passarlo come "to": "\$114xxxxxxxx", quindi restituirà i record se esistono.
+ Il filtro del campo "identity" è obbligatorio quando si effettua la query dell'entità `conversation-participant-conversation`.