

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Herstellen einer Verbindung mit Twilio
<a name="connecting-to-data-twilio"></a>

Twilio bietet programmierbare Kommunikationstools zum Tätigen und Empfangen von Telefonanrufen, zum Senden und Empfangen von Textnachrichten sowie zum Ausführen anderer Kommunikationsfunktionen mithilfe seines Webdienstes. APIs Twilio APIs unterstützt seine Kommunikationsplattform. Dahinter verbirgt APIs sich eine Softwareschicht, die Kommunikationsnetzwerke auf der ganzen Welt verbindet und optimiert, sodass Ihre Benutzer weltweit jeden anrufen und Nachrichten senden können. Als Twilio-Benutzer können Sie eine Verbindung AWS Glue zu Ihrem Twilio-Konto herstellen. Anschließend können Sie Twilio als Datenquelle in Ihren ETL-Aufträgen verwenden. Führen Sie diese Jobs aus, um Daten zwischen Twilio und AWS Diensten oder anderen unterstützten Anwendungen zu übertragen.

**Topics**
+ [AWS Glue Unterstützung für Twilio](twilio-support.md)
+ [Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten](twilio-configuring-iam-permissions.md)
+ [Konfigurieren von Twilio](twilio-configuring.md)
+ [Konfiguration von Twilio-Verbindungen](twilio-configuring-connections.md)
+ [Lesen aus Twilio-Entitäten](twilio-reading-from-entities.md)
+ [Twilio-Verbindungsoptionen](twilio-connection-options.md)
+ [Einschränkungen und Hinweise für den Twilio-Connector](twilio-connector-limitations.md)

# AWS Glue Unterstützung für Twilio
<a name="twilio-support"></a>

AWS Glue unterstützt Twilio wie folgt:

**Als Quelle unterstützt?**  
Ja. Sie können AWS Glue ETL-Jobs verwenden, um Daten von Twilio abzufragen.

**Als Ziel unterstützt?**  
Nein.

**Unterstützte Twilio-API-Versionen**  
Die folgenden Twilio-API-Versionen werden unterstützt:
+ v1
+ 2010-04-01

# Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten
<a name="twilio-configuring-iam-permissions"></a>

Die folgende Beispielrichtlinie beschreibt die erforderlichen AWS IAM-Berechtigungen für das Erstellen und Verwenden von Verbindungen. Wenn Sie eine neue Rolle erstellen, erstellen Sie eine Richtlinie, die Folgendes enthält:

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

****  

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

------

Wenn Sie die oben genannte Methode nicht verwenden möchten, verwenden Sie alternativ die folgenden verwalteten IAM-Richtlinien:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Gewährt Zugriff auf Ressourcen, die verschiedene AWS Glue Prozesse benötigen, um in Ihrem Namen ausgeführt zu werden. Zu diesen Ressourcen gehören AWS Glue Amazon S3, IAM, CloudWatch Logs und Amazon EC2. Wenn Sie die in dieser Richtlinie angegebene Benennungskonvention für Ressourcen einhalten, verfügen AWS Glue Prozesse über die erforderlichen Berechtigungen. Diese Richtlinie wird typischerweise mit Rollen verknüpft, die bei der Definition von Crawlern, Aufträgen und Entwicklungsendpunkten angegeben werden.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Gewährt vollen Zugriff auf AWS Glue Ressourcen, wenn eine Identität, der die Richtlinie zugeordnet ist, die AWS Managementkonsole verwendet. Wenn Sie die Namenskonvention für Ressourcen befolgen, die in dieser Richtlinie angegeben sind, haben Benutzer alle Konsolenfunktionalitäten. Diese Richtlinie wird normalerweise Benutzern der AWS Glue Konsole zugewiesen.

# Konfigurieren von Twilio
<a name="twilio-configuring"></a>

Bevor Sie Daten von Twilio AWS Glue übertragen können, müssen Sie die folgenden Anforderungen erfüllen:

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

Die folgenden Anforderungen sind Mindestanforderungen:
+ Sie haben ein Twilio-Konto mit Benutzername und Passwort.
+ Ihr Twilio-Konto ist für den API-Zugriff aktiviert.

Wenn Sie diese Anforderungen erfüllen, können Sie eine Verbindung AWS Glue zu Ihrem Twilio-Konto herstellen. Für typische Verbindungen müssen Sie in Twilio nichts weiter tun.

# Konfiguration von Twilio-Verbindungen
<a name="twilio-configuring-connections"></a>

Twilio unterstützt Benutzername und Passwort für die Standardauthentifizierung. Die Standardauthentifizierung ist eine einfache Authentifizierungsmethode, bei der Clients Anmeldeinformationen direkt eingeben, um auf geschützte Ressourcen zuzugreifen. AWS Glue kann den Benutzernamen (Konto-SID) und das Passwort (Auth Token) verwenden, um Twilio zu authentifizieren. APIs

[Die öffentliche Twilio-Dokumentation zum Ablauf der Standardauthentifizierung finden Sie unter Standardauthentifizierung \$1 Twilio.](https://www.twilio.com/docs/glossary/what-is-basic-authentication)

Konfigurieren einer Twilio-Verbindung:

1. Erstellen Sie in AWS Secrets Manager ein Secret mit den folgenden Details:
   + Für die Standardauthentifizierung: Das Geheimnis muss das Verbrauchergeheimnis der verbundenen App mit der **Konto-SID** (Benutzername) und dem **Auth-Token** (Passwort) enthalten.
**Anmerkung**  
Sie müssen ein Geheimnis für Ihre Verbindungen in erstellen AWS Glue.

1. Erstellen Sie in AWS Glue Glue Studio eine Verbindung unter **Datenverbindungen**, indem Sie die folgenden Schritte ausführen:

   1. Wählen Sie als **Verbindungstyp** Twilio aus.

   1. Geben Sie die `[Edge\$1Location](https://www.twilio.com/docs/global-infrastructure/edge-locations)` der Twilio-Instance an, mit der Sie eine Verbindung herstellen möchten.

   1. Wählen Sie die AWS IAM-Rolle aus, die die folgenden Aktionen übernehmen AWS Glue kann und über Berechtigungen verfügt:

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

****  

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

------

   1. Wählen Sie `secretName` die aus, in die Sie für diese Verbindung die Token einfügen AWS Glue möchten.

   1. Wählen Sie die Netzwerkoptionen aus, wenn Sie Ihr Netzwerk verwenden möchten.

1. Erteilen Sie der mit Ihrem AWS Glue Job verknüpften IAM-Rolle `secretName` Leserechte.

# Lesen aus Twilio-Entitäten
<a name="twilio-reading-from-entities"></a>

**Voraussetzung**

Ein Twilio-Objekt, aus dem gelesen werden soll. Sie benötigen den Objektnamen wie `SMS-Message` oder `SMS-CountryPricing`.

**Unterstützte Entitäten für Quelle**:


| Entität | Schnittstelle | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „\$1 auswählen“ | Unterstützt Partitionierung | 
| --- | --- | --- | --- | --- | --- | --- | 
| SMS-Message | REST | Ja | Ja | Nein | Ja | Ja | 
| SMS- CountryPricing | REST | Nein | Nein | Nein | Ja | Nein | 
| Voice-Call | REST | Ja | Ja | Nein | Ja | Nein | 
| Voice-Application | REST | Ja | Ja | Nein | Ja | Nein | 
| OutgoingCallerSprach-ID | REST | Ja | Ja | Nein | Ja | Nein | 
| Voice-Queue | REST | Ja | Ja | Nein | Ja | Nein | 
| Conversations-Conversation | REST | Ja | Ja | Nein | Ja | Nein | 
| Conversations-User | REST | Nein | Ja | Nein | Ja | Nein | 
| Conversations-Role | REST | Nein | Ja | Nein | Ja | Nein | 
| Conversations-Configuration | REST | Nein | Nein | Nein | Ja | Nein | 
| Gespräche- AddressConfiguration | REST | Ja | Ja | Nein | Ja | Nein | 
| Gespräche- WebhookConfiguration | REST | Nein | Nein | Nein | Ja | Nein | 
| Gespräche- ParticipantConversation | REST | Nein | Nein | Nein | Ja | Nein | 
| Conversations-Credential | REST | Nein | Ja | Nein | Ja | Nein | 
| Gespräche- ConversationService | REST | Nein | Ja | Nein | Ja | Nein | 

**Beispiel:**

```
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"
    }
```

**Twilio-Entitäts- und Felddetails**

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

## Partitionieren von Abfragen
<a name="twilio-reading-partitioning-queries"></a>

**Felder, die Partitionierung unterstützen**:

In Twilio unterstützen die DateTime Datentypfelder die feldbasierte Partitionierung.

Sie können die zusätzlichen Spark-Optionen `PARTITION_FIELD`,`LOWER_BOUND`, `UPPER_BOUND` und `NUM_PARTITIONS` angeben, wenn Sie Parallelität in Spark nutzen möchten. Mit diesen Parametern wird die ursprüngliche Abfrage in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.
+ `PARTITION_FIELD`: der Name des Feldes, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`: ein **inklusiver** Untergrenzwert des ausgewählten Partitionsfelds.

  Für das DateTime-Feld akzeptieren wir das Spark-Zeitstempelformat, das in Spark-SQL-Abfragen verwendet wird.

  Beispiele für gültigen Wert:

  ```
  "2024-05-01T20:55:02.000Z"
  ```
+ `UPPER_BOUND`: ein **exklusiver** Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`: Die Anzahl an Partitionen.

Beispiel:

```
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"
    }
```

# Twilio-Verbindungsoptionen
<a name="twilio-connection-options"></a>

Im Folgenden sind Verbindungsoptionen für Twilio aufgeführt:
+ `ENTITY_NAME` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Der Name Ihres Objekts in Twilio.
+ `EDGE_LOCATION`(Zeichenfolge) – (Erforderlich) Ein gültiger Twilio-Edge-Standort.
+ `API_VERSION` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Version der Twilio-REST-API, die Sie verwenden möchten. Twilio unterstützt zwei API-Versionen: „v1“ und „2010-04-01“.
+ `SELECTED_FIELDS` (Liste<Zeichenfolge>) – Standard: leer(SELECT \$1). Zum Lesen verwendet. Spalten, die Sie für das Objekt auswählen möchten.
+ `FILTER_PREDICATE`(Zeichenfolge) – Standard: leer. Zum Lesen verwendet. Muss das Spark-SQL-Format aufweisen.
+ `QUERY`(Zeichenfolge) – Standard: leer Zum Lesen verwendet. Vollständige Spark-SQL-Abfrage.
+ `PARTITION_FIELD`(Zeichenfolge) – Zum Lesen verwendet. Feld, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein inklusiver Untergrenzwert des ausgewählten Partitionsfelds.
+ `UPPER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein exklusiver Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`(Ganzzahl) – Standard: 1. Zum Lesen verwendet. Anzahl der Partitionen zum Lesen.
+ `INSTANCE_URL` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Eine gültige Twilio-Instance-URL.

# Einschränkungen und Hinweise für den Twilio-Connector
<a name="twilio-connector-limitations"></a>

Im Folgenden finden Sie Einschränkungen oder Hinweise für den Twilio-Connector:
+ Die datensatzbasierte Partitionierung wird nicht unterstützt, denn es besteht keine Möglichkeit, die Gesamtzahl der Datensätze aus Twilio abzurufen.
+ Die Felder `date_sent`, `start_time` und `end_time` haben den Datentyp „Datetime“, aber beim Filtern unterstützen sie nur Datumswerte (Zeitkomponenten werden nicht berücksichtigt).
+ Das Filtern der Felder „from“ oder „to“ funktioniert nur, wenn die Werte kein Präfix enthalten (beispielsweise ein Protokoll oder eine Bezeichnung). Wenn ein Präfix existiert, funktioniert das Filtern nach dem entsprechenden Feld nicht. Wenn Sie beispielsweise „to“: „whatsapp:\$114xxxxxxxxxx“ als Filter übergeben, gibt Twilio keine Antwort zurück. Sie müssen „to“: „\$114xxxxxxxx“ übergeben, dann werden Datensätze zurückgegeben, sofern sie existieren.
+ Der Feldfilter „identity“ ist bei der Abfrage der Entität `conversation-participant-conversation` obligatorisch.