HTTP
Konektor HTTP menyediakan konektivitas ke layanan HTTP dan menggunakan API berbasis HTTP. Konektor ini juga mendukung konektivitas SSL/TLS melalui konfigurasi kustom dan mendukung berbagai mekanisme autentikasi seperti Pemberian Kredensial Klien OAuth 2.0, Dasar, dan Ringkasan.
Sebelum memulai
Sebelum menggunakan konektor HTTP, lakukan tugas berikut:
- Di project Google Cloud Anda:
- Pastikan konektivitas jaringan sudah disiapkan. Untuk mengetahui informasi tentang pola jaringan, lihat Konektivitas jaringan.
- Berikan peran IAM roles/connectors.admin kepada pengguna yang mengonfigurasi konektor.
- Berikan peran IAM berikut ke akun layanan yang ingin Anda gunakan untuk konektor:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
Akun layanan adalah jenis Akun Google khusus yang dimaksudkan untuk mewakili pengguna non-manusia yang perlu diautentikasi dan diberi otorisasi untuk mengakses data di Google API. Jika tidak memiliki akun layanan, Anda harus membuat akun layanan. Untuk informasi selengkapnya, lihat Membuat akun layanan.
- Aktifkan layanan berikut:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
Untuk memahami cara mengaktifkan layanan, lihat Mengaktifkan layanan.
Jika layanan atau izin ini belum diaktifkan untuk project Anda sebelumnya, Anda akan diminta untuk mengaktifkannya saat mengonfigurasi konektor.
Mengonfigurasi konektor
Untuk mengonfigurasi konektor, Anda harus membuat koneksi ke sumber data (sistem backend). Koneksi bersifat khusus untuk sumber data. Artinya, jika memiliki banyak sumber data, Anda harus membuat koneksi terpisah untuk setiap sumber data. Untuk membuat koneksi, lakukan langkah-langkah berikut:
- Di konsol Cloud, buka halaman Konektor Integrasi > Koneksi, lalu pilih atau buat project Google Cloud.
- Klik + Buat Baru untuk membuka halaman Buat Koneksi.
- Di bagian Location, pilih lokasi untuk koneksi.
- Region: Pilih lokasi dari menu drop-down.
Untuk mengetahui daftar semua region yang didukung, lihat Lokasi.
- Klik Berikutnya.
- Region: Pilih lokasi dari menu drop-down.
- Di bagian Connection Details, selesaikan tindakan berikut:
- Konektor: Pilih HTTP dari menu drop-down Konektor yang tersedia.
- Versi konektor: Pilih versi Konektor dari menu drop-down versi yang tersedia.
- Di kolom Connection Name, masukkan nama untuk instance Connection.
Nama koneksi harus memenuhi kriteria berikut:
- Nama koneksi dapat menggunakan huruf, angka, atau tanda hubung.
- Huruf harus berupa huruf kecil.
- Nama koneksi harus diawali dengan huruf dan diakhiri dengan huruf atau angka.
- Nama koneksi tidak boleh melebihi 49 karakter.
- Secara opsional, masukkan Description untuk instance koneksi.
- Secara opsional, aktifkan Cloud Logging, lalu pilih level log. Secara default, level log ditetapkan ke
Error
. - Service Account: Pilih akun layanan yang memiliki peran yang diperlukan.
- Secara opsional, untuk memeriksa status koneksi, di kolom Status Check, tentukan URL endpoint. URL juga dapat menyertakan alamat IP lampiran endpoint. Status ini aktif secara default.
- Secara opsional, konfigurasikan Setelan node koneksi:
- Jumlah node minimum: Masukkan jumlah minimum node koneksi.
- Maximum number of nodes: Masukkan jumlah maksimum node koneksi.
Node adalah unit (atau replika) koneksi yang memproses transaksi. Semakin banyak node yang diperlukan untuk memproses lebih banyak transaksi untuk koneksi, dan sebaliknya, semakin sedikit node yang diperlukan untuk memproses lebih sedikit transaksi. Untuk memahami pengaruh node terhadap harga konektor, lihat Harga untuk node koneksi. Jika Anda tidak memasukkan nilai apa pun, secara default, node minimum ditetapkan ke 2 (untuk ketersediaan yang lebih baik) dan node maksimum ditetapkan ke 50.
-
Gunakan proxy: Centang kotak untuk mengonfigurasi server proxy untuk koneksi.
- Klik + Tambahkan tujuan.
- Pilih Jenis Tujuan.
- Alamat host: Tentukan nama host atau alamat IP tujuan.
Jika Anda ingin membuat koneksi pribadi ke backend, lakukan langkah berikut:
- Buat lampiran layanan PSC.
- Buat lampiran endpoint, lalu masukkan detail lampiran endpoint di kolom Alamat host.
- Alamat host: Tentukan nama host atau alamat IP tujuan.
- Secara opsional, klik + TAMBAHKAN LABEL untuk menambahkan label ke Koneksi dalam bentuk pasangan kunci/nilai.
- Jika ingin menggunakan SSL, pilih Enable SSL. Tindakan ini akan menampilkan detail konfigurasi SSL.
- Pilih jenis trust store. Status ini dapat berupa Publik, Pribadi, atau Koneksi Tidak Aman.
- Pilih sertifikat seperti yang ditampilkan berdasarkan pilihan penyimpanan kepercayaan Anda.
- Jika Anda menggunakan mTLS, pilih sertifikat penyimpanan kunci di bagian Penyimpanan Kunci.
- Atau, pilih versi TLS.
- Masukkan cipher suite yang didukung. Masukkan beberapa cipher suite, sebagai nilai yang dipisahkan koma. Untuk informasi selengkapnya, lihat Suite cipher yang didukung.
- Klik Berikutnya.
- Di bagian Destinations, masukkan detail host jarak jauh (sistem backend) yang ingin Anda hubungkan.
- Jenis Tujuan: Pilih Jenis Tujuan.
- Pilih Host address dari daftar untuk menentukan nama host atau alamat IP tujuan.
- Jika Anda ingin membuat koneksi pribadi ke sistem backend, pilih Endpoint attachment dari daftar, lalu pilih lampiran endpoint yang diperlukan dari daftar Endpoint Attachment.
Jika ingin membuat koneksi publik ke sistem backend dengan keamanan tambahan, Anda dapat mempertimbangkan untuk mengonfigurasi alamat IP keluar statis untuk koneksi, lalu mengonfigurasi aturan firewall untuk hanya mengizinkan alamat IP statis tertentu.
Untuk memasukkan tujuan tambahan, klik + Tambahkan tujuan.
- Klik Berikutnya.
- Jenis Tujuan: Pilih Jenis Tujuan.
-
Di bagian Authentication, masukkan detail autentikasi.
- Pilih Jenis autentikasi dan masukkan detail yang relevan.
Jenis autentikasi berikut didukung oleh koneksi HTTP:
- Autentikasi Khusus
- OAuth 2.0 - Pemberian kredensial klien
- Autentikasi Dasar
- Digest Authentication
- OAuth 2.0 - Kode otorisasi
- Service account
- Autentikasi token ID akun layanan
- Autentikasi kunci API
- Klik Berikutnya.
Untuk memahami cara mengonfigurasi jenis autentikasi ini, lihat Mengonfigurasi autentikasi.
- Pilih Jenis autentikasi dan masukkan detail yang relevan.
- Tinjau: Tinjau detail koneksi dan autentikasi Anda.
- Klik Create.
Mengonfigurasi autentikasi
Masukkan detail berdasarkan autentikasi yang ingin Anda gunakan.
- Autentikasi Kustom
Detail otorisasi kustom dapat ditambahkan sebagai header permintaan selama eksekusi tindakan tugas Konektor.
- OAuth 2.0 - Pemberian kredensial klien
- Client ID: Client ID yang akan digunakan untuk mengautentikasi permintaan HTTP.
- Rahasia Klien: Rahasia Secret Manager yang berisi rahasia klien untuk mengautentikasi permintaan HTTP.
- Format permintaan untuk token akses: Format permintaan yang akan digunakan dalam permintaan yang dibuat untuk mengambil token akses dari server autentikasi.
Pilih
body
untuk meneruskan client ID dan Secret sebagai isi permintaan, atauheader
untuk meneruskannya sebagai header yang dienkode. - Token Request Path: Jalur permintaan yang akan ditambahkan ke URL server autentikasi untuk mengambil URL token akses.
- Waktu Habis Masa Berlaku Default: Waktu habis masa berlaku default (dalam detik) untuk token akses. Waktu ini akan digunakan jika respons token akses tidak memiliki waktu habis masa berlaku. Jika nilai tidak diberikan, token akan diperbarui dalam 6 jam.
- Autentikasi Dasar
- Nama pengguna: Nama pengguna yang digunakan untuk membuat permintaan HTTP.
- Sandi: Secret Manager Secret yang berisi sandi yang terkait dengan nama pengguna yang diberikan.
- Digest Authentication
- Nama pengguna: Nama pengguna yang digunakan untuk membuat permintaan HTTP.
- Sandi: Secret Manager Secret yang berisi sandi yang terkait dengan nama pengguna yang diberikan.
- OAuth 2.0 - Kode otorisasi
- Client ID: Client ID seperti yang disediakan oleh aplikasi eksternal Anda.
- Cakupan: Cakupan izin yang didukung oleh aplikasi eksternal Anda.
- Rahasia klien: Pilih Rahasia Secret Manager. Anda harus membuat secret Pengelola Secret sebelum mengonfigurasi otorisasi ini.
- Versi secret: Versi secret Secret Manager untuk secret klien.
- Secara opsional, aktifkan PKCE (Proof Key for Code Exchange) jika server backend Anda mendukungnya.
- Authorization URL: Masukkan URL otorisasi untuk aplikasi eksternal Anda.
- URL token akses: Masukkan URL untuk mendapatkan token akses aplikasi eksternal Anda.
- Service account
Pilih opsi ini untuk mengautentikasi menggunakan akun layanan yang Anda berikan di langkah sebelumnya saat mengonfigurasi koneksi ini. Pastikan Anda telah menyediakan akun layanan yang memiliki peran dan izin IAM yang relevan yang diperlukan untuk autentikasi.
- Cakupan: Pilih cakupan OAuth 2.0 yang diperlukan dari drop-down. Untuk informasi selengkapnya, lihat Cakupan akses.
- Autentikasi token ID akun layanan
Pilih opsi ini untuk mengautentikasi menggunakan token ID yang dihasilkan dari akun layanan yang Anda berikan di langkah sebelumnya. Autentikasi ini menggunakan Token Web JSON (JWT) untuk autentikasi. Penyedia token ID, menandatangani dan menerbitkan JWT untuk autentikasi menggunakan akun layanan.
- Audiens: Masukkan penerima yang menjadi tujuan JWT.
- Nama Header: Masukkan nama header untuk token ID yang dihasilkan yang akan digunakan di header HTTP. Jika Anda tidak
menentukan nilai apa pun untuk kolom ini, secara default nilai kunci ditetapkan ke
Authorization
.
- Autentikasi kunci API
Pilih opsi ini untuk melakukan autentikasi menggunakan kunci API.
- Kunci API: Pilih secret Secret Manager dari kunci API.
- Versi secret: Pilih versi secret.
- API key parameter name: Masukkan nama parameter untuk kunci API. Kunci API dikirim ke server backend Anda sebagai pasangan nilai kunci. Nilai yang Anda masukkan di sini akan digunakan sebagai nama kunci untuk kunci API yang telah Anda pilih sebelumnya.
- Lokasi kunci API: Pilih tempat Anda ingin menambahkan kunci API dalam permintaan.
Untuk jenis autentikasi Authorization code
, setelah membuat koneksi, Anda harus melakukan beberapa langkah tambahan untuk mengonfigurasi autentikasi. Untuk informasi selengkapnya,
lihat Langkah tambahan setelah pembuatan koneksi.
Cipher suite yang didukung
Versi TLS | Cipher suite yang didukung |
---|---|
1,2 |
|
1,3 |
|
Langkah-langkah tambahan setelah pembuatan koneksi
Jika memilih OAuth 2.0 - Authorization code
untuk autentikasi, Anda harus melakukan langkah-langkah tambahan berikut setelah membuat koneksi:
- Di halaman Koneksi,
cari koneksi yang baru dibuat.
Perhatikan bahwa Status untuk konektor baru akan menjadi Otorisasi diperlukan.
- Klik Otorisasi diperlukan.
Tindakan ini akan menampilkan panel Edit otorisasi.
- Salin nilai Redirect URI ke aplikasi eksternal Anda.
- Verifikasi detail otorisasi.
- Klik Otorisasi.
Jika otorisasi berhasil, status koneksi akan disetel ke Aktif di halaman Koneksi.
Otorisasi ulang untuk Kode otorisasi
Jika menggunakan jenis autentikasi Authorization code
dan telah membuat perubahan konfigurasi apa pun di aplikasi HTTP backend, Anda harus memberikan otorisasi ulang ke koneksi HTTP. Untuk memberikan otorisasi ulang pada koneksi, lakukan langkah-langkah berikut:
- Klik koneksi yang diperlukan di halaman Koneksi.
Tindakan ini akan membuka halaman detail koneksi.
- Klik Edit untuk mengedit detail koneksi.
- Verifikasi detail OAuth 2.0 - Authorization code di bagian Authentication.
Jika diperlukan, buat perubahan yang diperlukan.
- Klik Simpan. Tindakan ini akan mengarahkan Anda ke halaman detail koneksi.
- Klik Edit authorization di bagian Authentication. Tindakan ini akan menampilkan panel Authorize.
- Klik Otorisasi.
Jika otorisasi berhasil, status koneksi akan disetel ke Aktif di halaman Koneksi.
Entity, operasi, dan tindakan
Semua Konektor Integrasi menyediakan lapisan abstraksi untuk objek aplikasi yang terhubung. Anda hanya dapat mengakses objek aplikasi melalui abstraksi ini. Abstraksi ditampilkan kepada Anda sebagai entitas, operasi, dan tindakan.
- Entity: Entity dapat dianggap sebagai objek, atau kumpulan properti, dalam
aplikasi atau layanan yang terhubung. Definisi entitas berbeda dari konektor ke konektor. Misalnya, dalam konektor database, tabel adalah entitas, dalam
konektor server file, folder adalah entitas, dan dalam konektor sistem pesan,
antrean adalah entitas.
Namun, mungkin konektor tidak mendukung atau memiliki entity apa pun, dalam hal ini, daftar
Entities
akan kosong. - Operasi: Operasi adalah aktivitas yang dapat Anda lakukan pada entity. Anda dapat melakukan
salah satu operasi berikut pada entitas:
Memilih entitas dari daftar yang tersedia akan menghasilkan daftar operasi yang tersedia untuk entitas tersebut. Untuk deskripsi mendetail tentang operasi, lihat operasi entity tugas Konektor. Namun, jika konektor tidak mendukung operasi entitas apa pun, operasi yang tidak didukung tersebut tidak akan tercantum dalam daftar
Operations
. - Tindakan: Tindakan adalah fungsi kelas satu yang tersedia untuk integrasi
melalui antarmuka konektor. Tindakan memungkinkan Anda membuat perubahan pada satu atau beberapa entitas, dan
bervariasi dari satu konektor ke konektor lainnya. Biasanya, tindakan akan memiliki beberapa parameter input, dan parameter
output. Namun, konektor mungkin
tidak mendukung tindakan apa pun, dalam hal ini daftar
Actions
akan kosong.
Batasan sistem
Konektor HTTP dapat memproses 100 transaksi per detik, per node, dan mencegah transaksi apa pun melebihi batas ini. Secara default, Konektor Integrasi mengalokasikan 2 node (untuk ketersediaan yang lebih baik) untuk koneksi.
Untuk mengetahui informasi tentang batas yang berlaku untuk Konektor Integrasi, lihat Batas.
Tindakan yang didukung
Konektor HTTP mendukung tindakan berikut:
Tindakan HttpRequest
Tabel berikut menjelaskan parameter input dan output tindakan HttpRequest.
Parameter input tindakan HttpRequest
Nama parameter | Jenis data | Wajib | Deskripsi |
---|---|---|---|
URL | Struct | Tidak | URL yang ingin Anda kirim permintaannya.
URL memiliki format <scheme>://<netloc>/<path>;<params>?<query>#<fragment> .
Jika Anda memberikan netloc , nama host yang diberikan selama pembuatan koneksi akan diganti. |
Metode | String | Tidak | Metode permintaan HTTP seperti GET, POST, DELETE, atau PUT. Nilai defaultnya adalah GET. |
Header | Struct | Tidak | Header permintaan HTTP. |
Isi | String | Tidak | Isi permintaan HTTP. |
RequestHasBytes | Boolean | Tidak | Apakah akan mengirim permintaan sebagai byte. Jika ditetapkan ke true , Anda harus mengirim permintaan
sebagai string yang dienkode Base64 dalam parameter Body . Nilai defaultnya adalah false . |
ResponseHasBytes | Boolean | Tidak | Apakah akan menerima respons sebagai byte. Jika ditetapkan ke true , Anda akan menerima respons sebagai string berenkode Base64 dalam parameter output ResponseBody . Nilai defaultnya adalah false . |
HttpVersion | String | Tidak | Versi HTTP yang akan digunakan saat membuat permintaan. Nilai yang didukung adalah 1,1 dan 2. Jika Anda menentukan versi 2, negosiasi ALPN (Application-Layer Protocol Negotiation) akan dilakukan dan versi 1.1 akan digunakan jika server tidak mendukung versi 2. Nilai defaultnya adalah 2. |
ResponseFormat | String | Tidak | Menentukan format respons dari konektor. Nilai yang didukung adalah v1 dan v2 .
Nilai defaultnya adalah v1 .
Contoh respons v1: [{ "ResponseBody": "{\n \"status\": 200\n}" }, { "StatusCode": 200.0 }, { "HttpVersion": "2" }, { "ResponseHeaders": { ":status": "200", "content-length": "19" } }] Contoh respons v2: [{ "ResponseBody": "{\n \"status\": 200\n}", "StatusCode": 200.0, "HttpVersion": "2", "ResponseHeaders": { ":status": "200", "content-length": "19" } }] |
FailOnError | Boolean | Tidak | Menentukan perilaku koneksi saat terjadi error di aplikasi backend Anda.
Nilai defaultnya adalah |
Waktu habis | Bilangan bulat | Tidak | Nilai waktu tunggu untuk permintaan HTTP dalam hitungan detik. Nilai maksimum yang diizinkan adalah 150 detik. |
Parameter output tindakan HttpRequest
Nama parameter | Jenis data | Deskripsi |
---|---|---|
ResponseBody | String | Respons yang diterima dari server HTTP. |
StatusCode | Bilangan bulat | Kode status yang diterima dari Server HTTP. |
HttpVersion | String | Versi yang dinegosiasikan untuk Permintaan HTTP. |
ResponseHeaders | Struct | Header respons HTTP dalam bentuk pasangan key,value . |
Contoh
Contoh di bagian ini menjelaskan operasi berikut:
- Mengonfigurasi payload permintaan
- Mengirim konten byte
- Mendapatkan konten byte
Tabel berikut mencantumkan contoh skenario dan konfigurasi yang sesuai dalam tugas Konektor:
Tugas | Konfigurasi |
---|---|
Mengonfigurasi payload permintaan |
Contoh ini membuat permintaan POST ke URL |
Mengirim konten byte |
Untuk mengirim konten byte (seperti file), Anda harus menetapkan atribut permintaan
Contoh ini membuat permintaan POST ke server |
Mendapatkan konten byte |
Untuk mendapatkan byte (sebagai string Base64) dari server, Anda harus menetapkan atribut permintaan
Contoh ini membuat permintaan GET ke server |
Kode error
Bagian ini menjelaskan pesan error yang mungkin Anda dapatkan saat menggunakan koneksi HTTP.
Pesan error | Penyebab |
---|---|
Terjadi error saat terhubung dengan server HTTP | Koneksi HTTP gagal terhubung dengan server karena kegagalan handshake SSL atau endpoint server HTTP yang salah. |
Respons error diterima dari server HTTP | Server HTTP yang Anda coba hubungkan menampilkan respons error dengan kode status 4xx atau 5xx. Contoh respons:
{ "error": { "code": 400, "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "metadata": { "Body": "{\"thisIsResponseJSON\":\"someValue\"}" "Error": "Error response received from the HTTP server", "Headers": "{\":status\":[\"400\"], \"access-control-allow-credentials\":[\"true\"]}", "StatusCode": "400", "connection_type": "Http" } } ], "message": "Unable to execute HTTP Request", "status": "FAILED_PRECONDITION" } } |
Terjadi error saat mengambil token akses | Terjadi error saat mengambil token akses untuk jenis autentikasi OAuth Client Credentials Grant . |
Error Autentikasi Ringkasan | Runtime konektor belum menerima tantangan ringkasan atau tantangan tersebut merupakan jenis yang tidak didukung. |
Menggunakan terraform untuk membuat koneksi
Anda dapat menggunakan resource Terraform untuk membuat koneksi baru.Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk melihat contoh template terraform untuk pembuatan koneksi, lihat contoh template.
Saat membuat koneksi ini menggunakan Terraform, Anda harus menetapkan variabel berikut dalam file konfigurasi Terraform:
Nama parameter | Jenis data | Wajib | Deskripsi |
---|---|---|---|
proxy_enabled | BOOLEAN | Salah | Centang kotak ini untuk mengonfigurasi server proxy untuk koneksi. |
Menggunakan koneksi HTTP dalam integrasi
Setelah Anda membuat koneksi, koneksi tersebut akan tersedia di Integration Apigee dan Integration Aplikasi. Anda dapat menggunakan koneksi dalam integrasi melalui tugas Konektor.
- Untuk memahami cara membuat dan menggunakan tugas Konektor di Apigee Integration, lihat Tugas konektor.
- Untuk memahami cara membuat dan menggunakan tugas Konektor di Integrasi Aplikasi, lihat Tugas konektor.
Mendapatkan bantuan dari komunitas Google Cloud
Anda dapat memposting pertanyaan dan mendiskusikan konektor ini di komunitas Google Cloud di Cloud Forums.Langkah selanjutnya
- Pahami cara menangguhkan dan melanjutkan koneksi.
- Pahami cara memantau penggunaan konektor.
- Pahami cara melihat log konektor.