

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menghubungkan ke REST API
<a name="connecting-to-data-rest-api"></a>

 AWS Glue memungkinkan Anda untuk mengkonfigurasi AWS Glue ConnectionType yang dapat digunakan untuk terhubung AWS Glue ke sumber data berbasis REST API. Ini dapat digunakan sebagai sumber data dalam Pekerjaan ETL Anda. Anda dapat menjalankan pekerjaan ini untuk mentransfer data antara sumber data berbasis REST API dan AWS layanan atau aplikasi lain yang didukung. 

**Topics**
+ [AWS Glue dukungan untuk REST API](rest-api-support.md)
+ [Kebijakan yang berisi operasi API untuk mendaftarkan jenis dan creating/using koneksi koneksi](rest-api-configuring-iam-permissions.md)
+ [Mengonfigurasi REST API ConnectionType](rest-api-configuring.md)
+ [Mengonfigurasi koneksi REST API](rest-api-configuring-connections.md)
+ [Tutorial: Membuat REST API ConnectionType dan Koneksi](rest-api-example.md)
+ [Batasan](rest-api-limitations.md)

# AWS Glue dukungan untuk REST API
<a name="rest-api-support"></a>

AWS Glue mendukung REST API sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari sumber data berbasis REST API.

**Didukung sebagai target?**  
Tidak.

# Kebijakan yang berisi operasi API untuk mendaftarkan jenis dan creating/using koneksi koneksi
<a name="rest-api-configuring-iam-permissions"></a>

 Contoh kebijakan IAM berikut menjelaskan izin yang diperlukan untuk mendaftar, membuat, mengelola, dan menggunakan koneksi REST API dalam pekerjaan AWS Glue ETL. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut: 

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

Anda juga dapat menggunakan kebijakan IAM berikut untuk mengizinkan akses:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon EC2. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

Jika menyediakan Opsi Jaringan saat membuat koneksi REST API, tindakan berikut juga harus disertakan dalam peran IAM:

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

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

 Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari sumber data berbasis REST API, Anda harus memenuhi persyaratan ini: 

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

Berikut ini adalah persyaratan minimum:
+  Anda telah mengonfigurasi dan mendaftarkan jenis koneksi AWS Glue REST API. Lihat [Menghubungkan ke ISTIRAHAT APIs](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html). 
+  Jika menggunakan OAuth2 Client Client Client, Authorization Code atau JWT, konfigurasikan aplikasi klien yang sesuai. 

 Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke sumber data berbasis REST API Anda. Biasanya, tidak ada konfigurasi lebih lanjut yang diperlukan di sisi REST API. 

# Mengonfigurasi koneksi REST API
<a name="rest-api-configuring-connections"></a>

 Untuk mengonfigurasi konektor AWS Glue REST API, Anda perlu mengonfigurasi jenis AWS Glue koneksi. Jenis koneksi ini berisi rincian tentang properti bagaimana sumber data REST beroperasi dan menafsirkan hal-hal seperti otentikasi, permintaan, tanggapan, pagination, validasi, dan entitas/metadata. Untuk daftar lengkap properti yang diperlukan untuk jenis koneksi AWS Glue REST, lihat [ RegisterConnectionType](https://docs.aws.amazon.com/glue/latest/webapi/API_DescribeConnectionType.html)API dan langkah-langkah untuk [Menyambung ke REST APIs](https://docs.aws.amazon.com/glue/latest/dg/rest-api-connections.html). 

 Saat membuat konektor REST API, kebijakan berikut diperlukan untuk mengizinkan tindakan yang relevan: 

```
{
    "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: Membuat REST API ConnectionType dan Koneksi
<a name="rest-api-example"></a>

**Menghubungkan ke Foo REST API**

 Kami akan membuat AWS Glue REST API ConnectionType dan AWS Glue koneksi yang sesuai untuk Foo REST API. API ini memiliki properti berikut (yang dapat diambil dari dokumentasi REST API). 
+  **URL Contoh**: https://foo.cloud.com/rest/ v1. 
+  **Jenis otentikasi**: OAuth2 (Kredensial Klien). 
+  **Metode REST**: GET. 
+  **Jenis pagination**: Offset dengan properti “limit” dan “offset” ditempatkan dalam parameter permintaan permintaan. 
+ **Entitas yang didukung**:
  +  **Bilah**: jalur relatif [/bar.json]. 
  +  **Baz**: jalur relatif [/baz.json]. 

 Setelah semua detail diperoleh, kita dapat mulai membuat AWS Glue koneksi ke Foo REST API. 

**Untuk membuat koneksi REST API**:

1.  Buat tipe koneksi REST API AWS Glue dengan memanggil RegisterConnectionType API menggunakan AWS API, CLI, atau SDK. Ini akan menciptakan ConnectionType sumber daya baru di 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.  Di AWS Secrets Manager, buat rahasia. Rahasia harus berisi aplikasi Consumer Secret yang terhubung dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kunci. 
**catatan**  
Anda harus membuat rahasia per koneksi di AWS Glue

1.  Buat AWS Glue koneksi dengan memanggil CreateConnection API menggunakan AWS API, CLI, atau SDK. 

   1.  Referensikan nama jenis koneksi REST dari Langkah 1 sebagai “ConnectionType”. 

   1.  Berikan InstanceUrl dan ConnectionProperties yang lainnya yang ditentukan selama proses AWS Glue ConnectionType pendaftaran. 

   1.  Pilih dari Jenis Otentikasi yang dikonfigurasi. REST API Foo menggunakan OAuth2 dengan tipe ClientCredentials hibah. 

   1.  Berikan **SecretArn**dan lainnya **AuthenticationProperties**yang dikonfigurasi. Sebagai contoh, kita telah mengkonfigurasi `OAUTH2` sebagai AuthenticationType sehingga kita akan mengatur “OAuth2Properties” di CreateConnectionInput. Ini akan membutuhkan properti seperti “OAuth2GrantType”, “TokenUrl”, dan “OAuth2ClientApplication”. 

1.  Buat CreateConnection permintaan yang akan membuat AWS Glue koneksi. 

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

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

Berikut ini adalah batasan untuk konektor REST API
+  Konektor REST API hanya tersedia melalui AWS API, CLI, atau SDK. Anda tidak dapat mengkonfigurasi konektor REST melalui konsol. 
+  AWS Glue REST hanya ConnectionType dapat dikonfigurasi untuk MEMBACA data dari sumber data berbasis REST API. Koneksi hanya dapat digunakan sebagai SUMBER dalam pekerjaan AWS Glue ETL. 
+  Pemfilteran dan partisi tidak didukung. 
+  Pemilihan bidang tidak didukung. 