Menyediakan API hub dari command line

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Dokumen ini menjelaskan cara menyediakan API hub dari command line. Jika Anda lebih memilih untuk menyediakan API hub menggunakan UI bergaya wizard, lihat Menyediakan API hub di Cloud Console.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Make sure that you have the following role or roles on the project:

    • roles/serviceusage.serviceUsageAdmin
    • roles/cloudkms.admin
    • roles/apihub.provisioningAdmin
    • roles/resourcemanager.projectIamAdmin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Buka IAM
    2. Pilih project.
    3. Klik Berikan akses.
    4. Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.

    5. Di daftar Pilih peran, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.

    Ringkasan langkah

    Langkah-langkah penyediaannya adalah sebagai berikut:

    1. Langkah 1: Aktifkan API. Anda harus mengaktifkan kumpulan Google Cloud API agar hub Apigee API dapat beroperasi.
    2. Langkah 2: Buat identitas layanan hub API Apigee. Identitas layanan memungkinkan instance API hub memanggil Google Cloud API yang diperlukan untuk melakukan operasinya.
    3. Langkah 3. Konfigurasi enkripsi. Anda dapat memilih apakah akan menggunakan pendekatan Google-owned and Google-managed encryption key (GMEK) atau Kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi dan mendekripsi data API dalam penyimpanan. Lihat Perbandingan CMEK dan Google-owned and Google-managed encryption keysmilik Google.
    4. Langkah 4: Buat instance API hub. Untuk menyelesaikannya, Anda harus mendaftarkan project host dan membuat instance API hub.

    Langkah-langkah penyediaan

    Pastikan Anda telah memenuhi prasyarat yang dijelaskan di Sebelum memulai.

    Langkah 1: Aktifkan API

    Untuk menyediakan API Hub, Anda harus mengaktifkan API berikut di project Google Cloud :

    1. Aktifkan Google Cloud API yang diperlukan dengan menjalankan perintah services enable berikut:

      gcloud services enable apihub.googleapis.com \
          cloudkms.googleapis.com --project=YOUR_PROJECT_ID

      Dengan YOUR_PROJECT_ID sebagai project ID Cloud yang Anda buat di bagian Sebelum memulai.

    Langkah 2: Buat identitas layanan hub Apigee API

    Identitas layanan memungkinkan instance API hub memanggil Google Cloud API yang diperlukan untuk melakukan operasinya.

    1. Buat identitas layanan:

      gcloud beta services identity create --service=apihub.googleapis.com \
        --project=YOUR_PROJECT_ID

      Dengan YOUR_PROJECT_ID sebagai project ID Cloud yang Anda buat di bagian Sebelum memulai.

    2. Pastikan agen berhasil dibuat. Responsnya mencakup nama agen dalam format berikut: service-PROJECT_NUMBER@gcp-sa-apihub.iam.gserviceaccount.com. Contoh:

      Service identity created: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com

      Perhatikan bahwa Anda harus menggunakan identitas layanan ini di langkah selanjutnya.

    Langkah 3: Konfigurasikan enkripsi

    Pada langkah ini, Anda mengonfigurasi cara enkripsi data di instance hub API dikelola. Anda dapat menggunakan Google-owned and Google-managed encryption key (GMEK) atau membuat kunci enkripsi yang dikelola pelanggan (CMEK) Anda sendiri. Lihat Perbandingan CMEK dan Google-owned and Google-managed encryption keysmilik Google.

    Langkah-langkah CMEK

    Ikuti langkah-langkah berikut jika Anda ingin menggunakan CMEK untuk enkripsi data:

    1. Membuat key ring dan kunci enkripsi database runtime. Anda dapat menggunakan kunci CMEK dan key ring yang ada jika mau. Perhatikan bahwa kunci harus dibuat di lokasi yang sama dengan tempat Anda berencana membuat instance API hub.

      1. Buat key ring baru:

        Nama ring kunci harus unik untuk organisasi Anda. Jika Anda membuat region kedua atau berikutnya, namanya tidak boleh sama dengan key ring lainnya.

        gcloud kms keyrings create KEY_RING_NAME \
          --location KEY_RING_LOCATION --project YOUR_PROJECT_ID

        Dengan keterangan:

        • KEY_RING_NAME: Nama key ring yang akan dibuat.
        • KEY_RING_LOCATION: Lokasi fisik key ring. Lokasi ini harus sama dengan yang ingin Anda gunakan untuk instance API hub yang akan Anda buat pada langkah berikutnya. Anda harus menggunakan salah satu lokasi yang didukung berikut:

          Deskripsi region Nama region
          Iowa us-central1
          Northern Virginia us-east4
          Oregon us-west1
          Belgia europe-west1
          London europe-west2
          Singapura asia-southeast1
          Mumbai asia-south1
          Sao Paulo southamerica-east1
          Sydney australia-southeast1

        • YOUR_PROJECT_ID: Project ID Cloud yang Anda buat di Sebelum memulai.
      2. Buat kunci enkripsi dan tambahkan ke key ring:

        gcloud kms keys create KEY_NAME \
          --keyring KEY_RING_NAME \
          --location KEY_LOCATION \
          --purpose "encryption" \
          --project YOUR_PROJECT_ID

        Dengan keterangan:

        • KEY_NAME: Nama kunci database yang Anda buat.
        • KEY_RING_NAME: Nama key ring yang baru saja Anda buat.
        • KEY_LOCATION: Lokasi fisik kunci. Gunakan lokasi yang sama dengan yang Anda gunakan untuk membuat key ring.

      3. Dapatkan ID kunci:
        gcloud kms keys list \
          --location=KEY_LOCATION \
          --keyring=KEY_RING_NAME \
          --project=YOUR_PROJECT_ID

        ID kunci memiliki sintaksis berikut (mirip dengan jalur file). Simpan ID kunci ini, karena Anda akan menggunakannya di langkah berikutnya:

        projects/YOUR_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      4. Berikan akses bagi Agen Layanan Apigee untuk menggunakan kunci baru:

        gcloud kms keys add-iam-policy-binding KEY_NAME \
          --location KEY_LOCATION \
          --keyring KEY_RING_NAME \
          --member serviceAccount:SERVICE_ACCOUNT \
          --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
          --project YOUR_PROJECT_ID

        Dengan: SERVICE_ACCOUNT adalah ID akun layanan yang Anda buat di Langkah 2. ID akan terlihat seperti ini: service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com.

        Perintah ini mengikat kunci ke Agen Layanan hub Apigee API.

        Setelah permintaan ini berhasil diselesaikan, gcloud akan merespons dengan sesuatu yang mirip dengan berikut ini:

        Updated IAM policy for key [runtime].
        bindings:
        - members:
          - serviceAccount:service-1234567890@gcp-sa-apihub.iam.gserviceaccount.com
          role: roles/cloudkms.cryptoKeyEncrypterDecrypter
        etag: BwWqgEuCuwk=
        version: 1

        Jika Anda mendapatkan error seperti berikut:

        INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.

        Pastikan Anda menggunakan nomor project, bukan nama project, di alamat email akun layanan.

    Langkah-langkah GMEK

    Jika Anda ingin menggunakan GMEK untuk enkripsi data, lanjutkan ke langkah berikutnya, Langkah 4: Membuat instance API hub, sekarang. Tidak diperlukan konfigurasi kunci lebih lanjut.

    Langkah 4: Buat instance API hub

    Project host adalah Google Cloud project tempat Anda akan menyediakan hub Apigee API. Anda hanya dapat menyediakan satu instance API Hub per project host.

    1. Daftarkan project host:
      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -d '{
        "gcpProject": "projects/YOUR_PROJECT_ID"
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/hostProjectRegistrations?host_project_registration_id=HOST_ID

      Dengan keterangan:

      • YOUR_PROJECT_ID: Project ID Cloud yang Anda buat di bagian Sebelum memulai.
      • PROJECT_LOCATION: Lokasi fisik (region) tempat Anda ingin menghosting instance hub Apigee API. Anda harus menggunakan lokasi yang sama dengan yang digunakan untuk membuat kunci dan key ring CMEK. Region yang didukung adalah:

        Deskripsi region Nama region
        Iowa us-central1
        Northern Virginia us-east4
        Oregon us-west1
        Belgia europe-west1
        London europe-west2
        Singapura asia-southeast1
        Mumbai asia-south1
        Sao Paulo southamerica-east1
        Sydney australia-southeast1

      • HOST_ID: Nama project host.
    2. Buat instance hub API:

      Dengan CMEK

      Jika Anda menggunakan CMEK untuk enkripsi data, jalankan perintah berikut:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "cmekKeyName":"KEY_NAME",
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"CMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Dengan keterangan:

      • KEY_NAME (Wajib): Nama kunci CMEK yang sepenuhnya memenuhi syarat. Nama ini ditampilkan saat kunci dibuat. Contoh: projects/YOUR_PROJECT_ID/locations/HOST_LOCATION/hostProjectRegistrations/HOST_ID.
      • VERTEX_LOCATION (Opsional): Menentukan lokasi multi-region tempat menyimpan data penelusuran berbasis Vertex AI, data yang terkait dengan fitur Semantic Search di API hub. Anda dapat menggunakan us atau eu untuk nilai ini. Jika tidak ingin menggunakan salah satu multi-wilayah ini, Anda dapat menonaktifkan Penelusuran Semantik dengan menghapus parameter ini.
      • encryptionType (Wajib) Anda harus menggunakan CMEK.
      • YOUR_PROJECT_ID adalah project ID Cloud yang Anda buat di bagian Sebelum memulai.
      • PROJECT_LOCATION: Anda harus menggunakan lokasi yang sama dengan yang digunakan untuk mendaftarkan project host.
      • INSTANCE_ID: Nama instance hub API. Nilai ini harus terdiri dari 4-40 karakter, dan karakter yang valid adalah /[a-z][A-Z][0-9]-_/.

      Dengan GMEK

      Jika Anda menggunakan GMEK untuk enkripsi data, jalankan perintah berikut:

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" -d '{
        "config":{
          "vertexLocation":"VERTEX_LOCATION",
          "encryptionType":"GMEK"
          }
        }' https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/apiHubInstances?api_hub_instance_id=INSTANCE_ID

      Dengan keterangan:

      • VERTEX_LOCATION (Opsional): Menentukan lokasi multi-region tempat menyimpan data penelusuran berbasis Vertex AI, data yang terkait dengan fitur Semantic Search di API hub. Anda dapat menggunakan us atau eu untuk nilai ini. Jika tidak ingin menggunakan salah satu multi-wilayah ini, Anda dapat menonaktifkan Penelusuran Semantik dengan menghapus parameter ini.
      • encryptionType harus berupa GMEK. Jika Anda tidak memberikan jenis enkripsi, GMEK adalah default-nya.
      • YOUR_PROJECT_ID adalah project ID Cloud yang Anda buat di bagian Sebelum memulai.
      • PROJECT_LOCATION: Anda harus menggunakan lokasi yang sama dengan yang digunakan untuk mendaftarkan project host.
      • INSTANCE_ID: Nama instance hub API. Nilai ini harus terdiri dari 4-40 karakter, dan karakter yang valid adalah /[a-z][A-Z][0-9]-_/.
    3. Langkah 5: (Opsional) Buat lampiran project runtime

      Jika Anda menyediakan API hub di project yang memiliki proxy Apigee, lakukan langkah opsional ini untuk mendaftarkan proxy secara otomatis di API hub.

      curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" -H "X-Google-GFE-Can-Retry: yes" \
        https://apihub.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/PROJECT_LOCATION/runtimeProjectAttachments?runtimeProjectAttachmentId=YOUR_PROJECT_ID

      Dengan keterangan:

      • YOUR_PROJECT_ID adalah project ID Cloud yang Anda buat di bagian Sebelum memulai.
      • PROJECT_LOCATION: Anda harus menggunakan lokasi yang sama dengan yang digunakan untuk mendaftarkan project host.

      Langkah berikutnya

      Sekarang, Anda siap untuk mulai menggunakan API hub: