

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.

# Verbindung zu einer REST-API herstellen
<a name="connecting-to-data-rest-api"></a>

 AWS Glue ermöglicht die Konfiguration eines AWS Glue ConnectionType , mit dem eine Verbindung AWS Glue zu einer beliebigen REST-API-basierten Datenquelle hergestellt werden kann. Dies kann als Datenquelle in Ihren ETL-Jobs verwendet werden. Sie können diese Jobs ausführen, um Daten zwischen der REST-API-basierten Datenquelle und AWS Diensten oder anderen unterstützten Anwendungen zu übertragen. 

**Topics**
+ [AWS Glue Unterstützung für REST-API](rest-api-support.md)
+ [Richtlinien, die die API-Operationen für die Registrierung von Verbindungstypen und creating/using Verbindungen enthalten](rest-api-configuring-iam-permissions.md)
+ [Konfiguration einer REST-API ConnectionType](rest-api-configuring.md)
+ [Konfiguration einer REST-API-Verbindung](rest-api-configuring-connections.md)
+ [Tutorial: REST-API ConnectionType und -Verbindung erstellen](rest-api-example.md)
+ [Einschränkungen](rest-api-limitations.md)

# AWS Glue Unterstützung für REST-API
<a name="rest-api-support"></a>

AWS Glue unterstützt die REST-API wie folgt:

**Als Quelle unterstützt?**  
Ja. Sie können AWS Glue ETL-Jobs verwenden, um Daten aus einer REST-API-basierten Datenquelle abzufragen.

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

# Richtlinien, die die API-Operationen für die Registrierung von Verbindungstypen und creating/using Verbindungen enthalten
<a name="rest-api-configuring-iam-permissions"></a>

 Die folgende IAM-Beispielrichtlinie beschreibt die erforderlichen Berechtigungen für die Registrierung, Erstellung, Verwaltung und Verwendung der REST-API-Verbindungen innerhalb von AWS Glue ETL-Jobs. Wenn Sie eine neue Rolle erstellen, erstellen Sie eine Richtlinie, die Folgendes enthält: 

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

Sie können auch die folgenden IAM-Richtlinien verwenden, um den Zugriff zuzulassen:
+ [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, an die die Richtlinie angehängt 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 in der Regel Benutzern der AWS Glue Konsole zugewiesen.

Wenn Sie beim Erstellen einer REST-API-Verbindung Netzwerkoptionen angeben, müssen die folgenden Aktionen ebenfalls in der IAM-Rolle enthalten sein:

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

# Konfiguration einer REST-API ConnectionType
<a name="rest-api-configuring"></a>

 Bevor Sie AWS Glue Daten aus der REST-API-basierten Datenquelle übertragen können, müssen Sie die folgenden Anforderungen erfüllen: 

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

Im Folgenden sind die Mindestanforderungen aufgeführt:
+  Sie haben einen AWS Glue REST-API-Verbindungstyp konfiguriert und registriert. Siehe [Verbindung zu REST](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html) herstellen APIs. 
+  Wenn Sie OAuth2 Client-Anmeldeinformationen, Autorisierungscode oder JWT verwenden, konfigurieren Sie die Client-App entsprechend. 

 Wenn Sie diese Anforderungen erfüllen, können Sie eine Verbindung AWS Glue zu Ihrer REST-API-basierten Datenquelle herstellen. In der Regel sind auf der REST-API-Seite keine weiteren Konfigurationen erforderlich. 

# Konfiguration einer REST-API-Verbindung
<a name="rest-api-configuring-connections"></a>

 Um einen AWS Glue REST-API-Connector zu konfigurieren, müssen Sie einen AWS Glue Verbindungstyp konfigurieren. Dieser Verbindungstyp enthält Details zu den Eigenschaften der Funktionsweise der REST-Datenquelle und zur Interpretation von Dingen wie Authentifizierung, Anfragen, Antworten, Seitennummerierung, Validierungen und Entitäten/Metadaten. [Eine umfassende Liste der erforderlichen Eigenschaften für einen AWS Glue REST-Verbindungstyp finden Sie in der [ RegisterConnectionType](https://docs.aws.amazon.com/glue/latest/webapi/API_DescribeConnectionType.html)API und in den Schritten zum Herstellen einer Verbindung zu REST. APIs](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html) 

 Bei der Erstellung des REST-API-Connectors ist die folgende Richtlinie erforderlich, um relevante Aktionen zu ermöglichen: 

```
{
    "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: REST-API ConnectionType und -Verbindung erstellen
<a name="rest-api-example"></a>

**Verbindung zur Foo REST API herstellen**

 Wir werden eine AWS Glue REST-API ConnectionType und eine entsprechende AWS Glue Verbindung für die Foo REST API erstellen. Diese API hat die folgenden Eigenschaften (die aus der REST-API-Dokumentation abgerufen werden können). 
+  **Instanz-URL**: https://foo.cloud.com/rest/ v1. 
+  **Authentifizierungstyp**: OAuth2 (Client-Anmeldeinformationen). 
+  **REST-Methode**: GET. 
+  **Paginierungstyp**: Offset mit den Eigenschaften „Limit“ und „Offset“, die im Abfrageparameter der Anfrage platziert sind. 
+ **Unterstützte Entitäten**:
  +  **Bar**: relativer Pfad [/bar.json]. 
  +  **Baz: relativer Pfad [/baz.json**]. 

 Sobald alle Details vorliegen, können wir damit beginnen, die AWS Glue Verbindung zur Foo REST API herzustellen. 

**So erstellen Sie eine REST-API-Verbindung**:

1.  Erstellen Sie den REST-API-Verbindungstyp, AWS Glue indem Sie die RegisterConnectionType API mithilfe von AWS API, CLI oder SDK aufrufen. Dadurch wird eine neue ConnectionType Ressource in erstellt 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.  Erstellen Sie im AWS Secrets Manager ein Geheimnis. Das Secret sollte die verbundene App Consumer Secret mit einem `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` Schlüssel enthalten. 
**Anmerkung**  
Sie müssen pro Verbindung ein Geheimnis erstellen in AWS Glue

1.  Stellen Sie die AWS Glue Verbindung her, indem Sie die CreateConnection API mit der AWS API, der CLI oder dem SDK aufrufen. 

   1.  Verweisen Sie auf den Namen des REST-Verbindungstyps aus Schritt 1 als „ConnectionType“. 

   1.  Geben Sie den InstanceUrl und alle anderen an ConnectionProperties , die während des AWS Glue ConnectionType Registrierungsprozesses definiert wurden. 

   1.  Wählen Sie einen der konfigurierten Authentifizierungstypen aus. Die REST-API, die Foo OAuth2 mit dem ClientCredentials Grant-Typ verwendet. 

   1.  Geben Sie die **SecretArn**und andere an **AuthenticationProperties**, die konfiguriert sind. Zum Beispiel haben wir das `OAUTH2` AuthenticationType so konfiguriert, dass wir die „OAuth2Eigenschaften“ in der festlegen werden CreateConnectionInput. Dies erfordert Eigenschaften wie „OAuth2GrantType“, „TokenUrl“ und „OAuth2ClientApplication“. 

1.  Stellen Sie die CreateConnection Anfrage, mit der die AWS Glue Verbindung hergestellt wird. 

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

# Einschränkungen
<a name="rest-api-limitations"></a>

Im Folgenden sind Einschränkungen für den REST-API-Connector aufgeführt
+  Der REST-API-Connector ist nur über die AWS API, CLI oder SDK verfügbar. Sie können REST-Konnektoren nicht über die Konsole konfigurieren. 
+  Der AWS Glue REST ConnectionType kann nur so konfiguriert werden, dass er Daten aus der REST-API-basierten Datenquelle LIEST. Die Verbindung kann nur als QUELLE in AWS Glue ETL-Jobs verwendet werden. 
+  Filterung und Partitionierung werden nicht unterstützt. 
+  Die Feldauswahl wird nicht unterstützt. 