

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 herstellen zu PayPal
<a name="connecting-to-data-paypal"></a>

PayPal ist ein Zahlungssystem, das Online-Geldtransfers zwischen Parteien erleichtert, z. B. Überweisungen zwischen Kunden und Online-Anbietern. Wenn Sie ein PayPal Benutzer sind, enthält Ihr Konto Daten über Ihre Transaktionen, z. B. deren Zahler, Daten und Status. Sie können AWS Glue es verwenden, um Daten von bestimmten AWS Diensten oder anderen unterstützten Anwendungen PayPal zu übertragen.

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

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

AWS Glue unterstützt PayPal wie folgt:

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

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

**Unterstützte PayPal API-Versionen**  
Die folgenden PayPal API-Versionen werden unterstützt:
+ v1

# Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten
<a name="paypal-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.

# Konfiguration PayPal
<a name="paypal-configuring"></a>

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

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

Die folgenden Anforderungen sind Mindestanforderungen:
+ Sie haben ein PayPal Konto mit Kundenanmeldedaten.
+ Ihr PayPal Konto hat API-Zugriff mit einer gültigen Lizenz.

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

# PayPal Verbindungen konfigurieren
<a name="paypal-configuring-connections"></a>

PayPal unterstützt den Gewährungstyp CLIENT CREDENTIALS für OAuth2.
+ Dieser Gewährungstyp gilt als 2-Legged OAuth 2.0, da er von Clients verwendet wird, um außerhalb des Benutzerkontextes ein Zugriffstoken zu erhalten. AWS Glue ist in der Lage, die Client-ID und das Client-Geheimnis zur Authentifizierung zu verwenden PayPal APIs , die von benutzerdefinierten Diensten bereitgestellt werden, die Sie definieren.
+ Jeder benutzerdefinierte Service gehört einem Nur-API-Benutzer, der über eine Reihe von Rollen und Berechtigungen verfügt, die den Service zur Ausführung bestimmter Aktionen autorisieren. Ein Zugriffstoken ist einem einzelnen benutzerdefinierten Service zugeordnet.
+ Dieser Gewährungstyp führt zu einem Zugriffstoken, das nur von kurzer Dauer ist und durch erneutes Aufrufen des `/v2/oauth2/token`-Endpunkts erneuert werden kann.
+ Öffentliche PayPal Dokumentation für OAuth 2.0 mit Client-Anmeldeinformationen finden Sie unter [Authentifizierung](https://developer.paypal.com/api/rest/authentication/).

So konfigurieren Sie eine PayPal Verbindung:

1. Erstellen Sie in AWS Secrets Manager ein Secret mit den folgenden Details:

   1. Für die kundenseitig verwaltete verbundene App muss das Geheimnis das Verbrauchergeheimnis der verbundenen App mit `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` als Schlüssel enthalten.

   1. Hinweis: 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 bei der Auswahl eines **Verbindungstyps** PayPal.

   1. Geben Sie die PayPal Instanz `INSTANCE_URL` an, zu 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.

## Anmeldeinformationen für OAuth Version 2.0 erhalten
<a name="paypal-getting-oauth-20-credentials"></a>

Um die Rest-API aufzurufen, müssen Sie Ihre Client-ID und Ihr Client-Geheimnis gegen ein Zugriffstoken eintauschen. Weitere Informationen finden Sie unter [Erste Schritte mit PayPal REST APIs](https://developer.paypal.com/api/rest/).

# Aus PayPal Entitäten lesen
<a name="paypal-reading-from-entities"></a>

**Voraussetzung**

Ein PayPal Objekt, aus dem Sie lesen möchten. Sie benötigen den Objektnamen, `transaction`.

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


| Entität | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „\$1 auswählen“ | Unterstützt Partitionierung | 
| --- | --- | --- | --- | --- | --- | 
| Transaktion | Ja | Ja | Nein | Ja | Ja | 

**Beispiel:**

```
paypal_read = glueContext.create_dynamic_frame.from_options(
    connection_type="paypal",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "transaction",
        "API_VERSION": "v1",
        "INSTANCE_URL": "https://api-m.paypal.com"
    }
```

**PayPal Entitäts- und Felddetails**:

Entitäten mit statischen Metadaten:

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

## Partitionierung von Abfragen
<a name="paypal-reading-partitioning-queries"></a>

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 den Wert im ISO-Format.

  Beispiele für gültigen Wert:

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: ein **exklusiver** Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`: Die Anzahl an Partitionen.

Das folgende Feld wird für die entitätsweise Partitionierung unterstützt:


| Entitätsname | Partitionieren von Feldern | Datentyp | 
| --- | --- | --- | 
| Transaktion | transaction\$1initiation\$1date | DateTime | 

Beispiel:

```
paypal_read = glueContext.create_dynamic_frame.from_options(
    connection_type="paypal",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "transaction",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "transaction_initiation_date"
        "LOWER_BOUND": "2024-07-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-07-02T00:00:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# PayPal Verbindungsoptionen
<a name="paypal-connection-options"></a>

Im Folgenden finden Sie Verbindungsoptionen für PayPal:
+ `ENTITY_NAME` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Der Name Ihres Objekts in PayPal.
+ `API_VERSION`(Zeichenfolge) — (Erforderlich) Wird zum Lesen verwendet. PayPal Rest-API-Version, die Sie verwenden möchten.
+ `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 zu lesenden Partitionen.

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

Im Folgenden finden Sie Einschränkungen oder Hinweise für den PayPal Konnektor:
+ In der [PayPal Transaktionsdokumentation](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get) wird erwähnt, dass es maximal drei Stunden dauert, bis ausgeführte Transaktionen im Listentransaktionsaufruf erscheinen. Es wurde jedoch beobachtet, dass es je nach [https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=last_refreshed_datetime](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=last_refreshed_datetime) länger dauern kann. Hier `last_refreshed_datetime` ist der Zeitraum angegeben, bis zu dem Ihnen Daten vom zur Verfügung stehen APIs.
+ Wenn `last_refreshed_datetime` kleiner als das angeforderte `end_date` ist, entspricht `end_date` dem Wert von `last_refreshed_datetime`, weil wir nur Daten bis zu diesem Zeitpunkt haben.
+ Das Feld `transaction_initiation_date` ist ein obligatorischer Filter, der für die Entität `transaction` bereitgestellt werden muss, und der [maximal unterstützte](https://developer.paypal.com/docs/transaction-search/#:~:text=The%20maximum%20supported%20date%20range%20is%2031%20days.) Zeitraum für dieses Feld beträgt 31 Tage.
+ Wenn Sie die `transaction`-Entitäts-API-Anfrage mit anderen Filtern (Abfrageparametern) als dem Feld `transaction_initiation_date` aufrufen, wird erwartet, dass der Wert des Felds [https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=If%20you%20specify%20one%20or%20more%20optional%20query%20parameters%2C%20the%20ending_balance%20response%20field%20is%20empty.](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=If%20you%20specify%20one%20or%20more%20optional%20query%20parameters%2C%20the%20ending_balance%20response%20field%20is%20empty.) in der Antwort nicht abgerufen wird.