Mengaktifkan monetisasi untuk Apigee hybrid

Ringkasan

Dokumen ini menjelaskan prosedur untuk mengaktifkan biaya berulang, pengisian saldo, dan penyiapan untuk fitur Monetisasi Apigee di organisasi Hybrid.

Prasyarat

Prosedur

Mengaktifkan biaya berulang, isi ulang, dan penyiapan untuk monetisasi Apigee hybrid memerlukan pembuatan dan penyiapan akun layanan Google apigee-mint-task-scheduler serta pemberian akses ke pipeline data Pub/Sub.

  1. Jika Anda belum mendownload diagram Helm versi 1.15.1, Tarik diagram Helm dengan perintah berikut:

    Di direktori $APIGEE_HELM_CHARTS_HOME, gunakan perintah pull untuk menyalin semua diagram Helm Apigee Hybrid ke penyimpanan lokal Anda:

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.15.1
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  2. Buat akun layanan apigee-mint-task-scheduler.

    Jika Anda belum membuat akun layanan apigee-mint-task-scheduler, buat sekarang dengan alat create-service-account. Lihat Langkah 4: Buat akun layanan untuk mengetahui informasi tentang cara membuat akun layanan sebagai bagian dari penginstalan hibrida baru.

    1. Temukan alat create-service-account di direktori $APIGEE_HELM_CHARTS_HOME:
      $APIGEE_HELM_CHARTS_HOME/
          └── apigee-operator/
              └── etc/
                  └── tools/
                      └── create-service-account

      Pastikan Anda dapat menjalankan create-service-account. Jika Anda baru saja mendownload diagram, file create-service-account mungkin tidak dalam mode yang dapat dieksekusi. Di direktori APIGEE_HELM_CHARTS_HOME, jalankan perintah berikut:

      $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help

      Jika output Anda menampilkan permission denied, Anda perlu membuat file dapat dieksekusi, misalnya dengan chmod di Linux, MacOS, atau UNIX atau di Windows Explorer atau dengan perintah icacls di Windows. Contoh:

      chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
    2. Buat akun layanan apigee-mint-task-scheduler dan simpan file sertifikat yang didownload di direktori diagram apigee-org dengan perintah berikut:
      $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
        --profile apigee-mint-task-scheduler \
        --env prod \
        --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
  3. Aktifkan akses bidang kontrol untuk akun layanan apigee-mart dan apigee-mint-task-scheduler.

    Jika Anda belum mengaktifkan akses panel kontrol untuk akun layanan apigee-mart dan apigee-mint-task-scheduler, lakukan sekarang dengan langkah-langkah berikut. Lihat Langkah 7: Aktifkan akses bidang kontrol untuk mengetahui informasi tentang cara mengaktifkan akses bidang kontrol sebagai bagian dari penginstalan hibrida baru.

    1. Jika Anda bukan pemilik project Google Cloud yang terkait dengan organisasi hybrid Apigee, pastikan akun pengguna Google Cloud Anda memiliki peran roles/apigee.admin (Admin Organisasi Apigee). Anda dapat memeriksa peran yang ditetapkan kepada Anda dengan perintah ini:
      gcloud projects get-iam-policy ${PROJECT_ID}  \
        --flatten="bindings[].members" \
        --format='table(bindings.role)' \
        --filter="bindings.members:your_account_email"
      

      Jika output Anda tidak menyertakan roles/apigee.admin, lihat Langkah 7: Aktifkan akses control plane untuk mengetahui langkah-langkah menambahkan peran atau meminta pengguna yang memiliki peran tersebut untuk melakukan langkah ini.

    2. Panggil API updateControlPlaneAccess untuk mengaktifkan izin yang diperlukan menggunakan perintah berikut:

      Tidak ada residensi data

      curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
        -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
      

      Dengan alamat email akun layanan adalah sebagai berikut:

      • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

      Residensi data

      curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
        -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
      

      Dengan:

      • CONTROL_PLANE_LOCATION adalah lokasi untuk data bidang kontrol Anda jika penginstalan hybrid Anda menggunakan residensi data. Ini adalah lokasi tempat konten inti pelanggan seperti paket proxy disimpan. Untuk mengetahui daftarnya, lihat Region bidang kontrol API Apigee yang tersedia.
      • Berikut adalah alamat email akun layanan:

        • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
        • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
        • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
    3. Verifikasi akses bidang kontrol untuk akun layanan apigee-mart dan apigee-mint-task-scheduler.

      Tidak ada residensi data

      curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"

      Residensi data

      curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type:application/json" \
        "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"

      Output Anda harus menyertakan akun layanan apigee-mart, apigee-mint-task-scheduler, dan apigee-runtime yang mirip dengan berikut:

      {
        "synchronizerIdentities": [
          "serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"
        ],
        "analyticsPublisherIdentities": [
          "serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com",
          "serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com",
          "serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com"
        ]
      }
  4. Tambahkan stanza khusus Monetisasi ke file overrides.yaml Anda.

    Tambahkan stanza berikut ke file overrides.yaml Anda:

    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.15.1" #must be 1.15.1 or higher.
    
    mintTaskScheduler:
      # if using stored SA cert files:
      serviceAccountPath: MINT_TASK_SCHEDULER_SA_CERT_FILE.json
      # if using stored Kubernetes secrets:
      serviceAccountRef: MINT_TASK_SCHEDULER_SA_K8S_SECRET
      # if using Workload Identity on GKE:
      gsa: "apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com"
    
    # or if using Vault:
    serviceAccountSecretProviderClass: apigee-orgsakeys-spc
    

    Jika Anda menggunakan secret Kubernetes, lihat Menyimpan data di secret Kubernetes.

    Jika Anda menggunakan Vault, lihat Menyimpan kunci akun layanan di Hashicorp Vault.

    Jika Anda menggunakan Vault, pastikan Anda telah menambahkan mint ke class penyedia rahasia khusus organisasi. Lihat Membuat objek SecretProviderClass.

  5. Terapkan perubahan pada diagram apigee-operator, apigee-org, dan apigee-env.

    Jika telah menetapkan variabel lingkungan $ORG_NAME dan APIGEE_NAMESPACE, Anda dapat menggunakannya dalam perintah berikut:

    1. Instal operator.

      Uji coba:

      helm upgrade operator apigee-operator/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      

      Instal diagram:

      helm upgrade operator apigee-operator/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    2. Instal organisasi Apigee.

      Uji coba:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml \
        --dry-run=server
      

      Instal diagram:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Instal lingkungan. Ulangi langkah ini untuk setiap lingkungan.

      Anda harus menginstal satu lingkungan dalam satu waktu. Tentukan lingkungan dengan --set env=ENV_NAME. Jika telah menetapkan variabel lingkungan $ENV_NAME di shell, Anda dapat menggunakannya dalam perintah berikut:

      Uji coba:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade diagram apigee-env. Nama ini harus unik dari nama rilis Helm lainnya di penginstalan Anda. Biasanya ini sama dengan ENV_NAME. Namun, jika lingkungan Anda memiliki nama yang sama dengan grup lingkungan, Anda harus menggunakan nama rilis yang berbeda untuk lingkungan dan grup lingkungan, misalnya dev-env-release dan dev-envgroup-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep penting dalam dokumentasi Helm.

      Instal diagram:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
  6. Khusus Workload Identity di GKE: Konfigurasi Workload Identity untuk akun layanan apigee-mint-task-scheduler.

    Jika Anda melakukan penginstalan baru, lakukan langkah ini selain langkah-langkah di Langkah 11 (Opsional): Konfigurasi Workload Identity.

    Saat Anda menjalankan upgrade helm dengan tanda --dry-run untuk diagram apigee-org, output akan menyertakan perintah yang diperlukan untuk mengonfigurasi Workload Identity dengan nama akun layanan Google dan akun layanan Kubernetes yang benar.

    1. Dapatkan perintah untuk menyiapkan Workload Identity untuk apigee-org dan jalankan perintah di bagian NOTES: dalam output.

      helm upgrade $ORG_NAME apigee-org/ \
        --namespace $NAMESPACE \
        -f overrides.yaml \
        --dry-run=server

      Output harus berisi petunjuk yang mirip dengan berikut di bagian NOTES::

      NOTES:
      ...
      For organization GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective Kubernetes SA (KSA).
      gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com \
            --role roles/iam.workloadIdentityUser \
            --member "serviceAccount:PROJECT_ID.svc.id.goog[APIGEE_NAMESPACE/apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID]" \
            --project PROJECT_ID
      

      Nama akun layanan Kubernetes memiliki format apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID.

    2. Jalankan perintah untuk menyiapkan Workload Identity untuk apigee-mint-task-scheduler.

Lihat juga