Attivazione della monetizzazione per Apigee hybrid

Panoramica

Questo documento descrive le procedure per attivare le tariffe ricorrenti, di ricarica e di configurazione per la funzionalità di monetizzazione di Apigee nelle organizzazioni ibride.

Prerequisiti

Procedura

L'attivazione delle commissioni ricorrenti, di ricarica e di configurazione per la monetizzazione di Apigee hybrid richiede la creazione e la configurazione dell'account di servizio Google apigee-mint-task-scheduler e la concessione dell'accesso alla pipeline di dati Pub/Sub.

  1. Se non hai ancora scaricato la versione 1.14.3 dei grafici Helm, estrai i grafici Helm con i seguenti comandi:

    Nella directory $APIGEE_HELM_CHARTS_HOME, utilizza il comando pull per copiare tutti i grafici Helm di Apigee Hybrid nell'archiviazione locale:

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.14.3
    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. Crea il account di servizio apigee-mint-task-scheduler.

    Se non hai ancora creato il account di servizio apigee-mint-task-scheduler, crealo ora con lo strumento create-service-account. Per informazioni sulla creazione di service account nell'ambito di una nuova installazione ibrida, vedi Passaggio 4: crea service account.

    1. Individua lo strumento create-service-account nella directory $APIGEE_HELM_CHARTS_HOME:
      $APIGEE_HELM_CHARTS_HOME/
          └── apigee-operator/
              └── etc/
                  └── tools/
                      └── create-service-account

      Verifica di poter eseguire create-service-account. Se hai appena scaricato i grafici, il file create-service-account potrebbe non essere in modalità eseguibile. Nella directory APIGEE_HELM_CHARTS_HOME esegui questo comando:

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

      Se l'output indica permission denied, devi rendere eseguibile il file, ad esempio con chmod in Linux, macOS o UNIX o in Esplora risorse di Windows o con il comando icacls in Windows. Ad esempio:

      chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
    2. Crea il account di servizio apigee-mint-task-scheduler e archivia il file del certificato scaricato nella directory del grafico apigee-org con questo comando:
      $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. Abilita l'accesso al control plane per gli account di servizio apigee-mart e apigee-mint-task-scheduler.

    Se non hai ancora attivato l'accesso al control plane per gli account di servizio apigee-mart e apigee-mint-task-scheduler, fallo ora seguendo questi passaggi. Per informazioni sull'attivazione dell'accesso al control plane nell'ambito di una nuova installazione ibrida, consulta Passaggio 7: attiva l'accesso al control plane.

    1. Se non sei il proprietario del progetto Google Cloud associato alla tua organizzazione Apigee ibrida, assicurati che il tuo account utente Google Cloud disponga del ruolo roles/apigee.admin (amministratore dell'organizzazione Apigee). Puoi controllare i ruoli che ti sono stati assegnati con questo comando:
      gcloud projects get-iam-policy ${PROJECT_ID}  \
        --flatten="bindings[].members" \
        --format='table(bindings.role)' \
        --filter="bindings.members:your_account_email"
      

      Se l'output non include roles/apigee.admin, consulta il Passaggio 7: attiva l'accesso al control plane per i passaggi per aggiungere il ruolo o per far eseguire questo passaggio a un utente che dispone del ruolo.

    2. Chiama l'API updateControlPlaneAccess per abilitare le autorizzazioni richieste utilizzando il seguente comando:

      Nessuna residenza dei dati

      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\"]}"
      

      Dove i seguenti sono gli indirizzi email dei service account:

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

      Residenza dei dati

      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\"]}"
      

      Dove:

      • CONTROL_PLANE_LOCATION è la posizione dei dati del control plane se l'installazione ibrida utilizza la residenza dei dati. Questa è la posizione in cui vengono archiviati i contenuti principali dei clienti, come i bundle proxy. Per un elenco, consulta Regioni del control plane dell'API Apigee disponibili.
      • Di seguito sono riportati gli indirizzi email dei service account:

        • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
        • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
        • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
    3. Verifica l'accesso al control plane per gli account di servizio apigee-mart e apigee-mint-task-scheduler.

      Nessuna residenza dei dati

      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"

      Residenza dei dati

      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"

      L'output deve includere i service account apigee-mart, apigee-mint-task-scheduler e apigee-runtime simili ai seguenti:

      {
        "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. Aggiungi le strofe specifiche per la monetizzazione al file overrides.yaml.

    Aggiungi le seguenti strofe al file overrides.yaml:

    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.14.3" #must be 1.14.3 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
    

    Se utilizzi i secret di Kubernetes, consulta Archiviazione dei dati in un secret Kubernetes.

    Se utilizzi Vault, consulta Memorizzare le chiavi dei account di servizio in Hashicorp Vault.

    Se utilizzi Vault, assicurati di aver aggiunto mint alla classe del provider di secret specifico dell'organizzazione. Vedi Creare oggetti SecretProviderClass.

  5. Applica le modifiche ai grafici apigee-operator, apigee-org e apigee-env.

    Se hai impostato le variabili di ambiente $ORG_NAME e APIGEE_NAMESPACE, puoi utilizzarle nei seguenti comandi:

    1. Installa l'operatore.

      Prova:

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

      Installa il grafico:

      helm upgrade operator apigee-operator/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    2. Installa l'organizzazione Apigee.

      Prova:

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

      Installa il grafico:

      helm upgrade $ORG_NAME apigee-org/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        -f overrides.yaml
      
    3. Installa l'ambiente. Ripeti questo passaggio per ogni ambiente.

      Devi installare un ambiente alla volta. Specifica l'ambiente con --set env=ENV_NAME. Se hai impostato la variabile di ambiente $ENV_NAME nella shell, puoi utilizzarla nei comandi seguenti:

      Prova:

      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 è un nome utilizzato per tenere traccia dell'installazione e degli upgrade del grafico apigee-env. Questo nome deve essere univoco rispetto agli altri nomi delle release Helm nell'installazione. Di solito è uguale a ENV_NAME. Tuttavia, se il tuo ambiente ha lo stesso nome del tuo gruppo di ambienti, devi utilizzare nomi di release diversi per l'ambiente e il gruppo di ambienti, ad esempio dev-env-release e dev-envgroup-release. Per ulteriori informazioni sulle release in Helm, consulta la sezione Tre concetti importanti nella documentazione di Helm.

      Installa il grafico:

      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace $APIGEE_NAMESPACE \
        --atomic \
        --set env=$ENV_NAME \
        -f overrides.yaml
      
  6. Solo Workload Identity su GKE:configura Workload Identity per il account di servizio apigee-mint-task-scheduler.

    Se esegui una nuova installazione, esegui questo passaggio in aggiunta a quelli descritti nel (facoltativo) Passaggio 11: configura Workload Identity.

    Quando esegui l'upgrade di Helm con il flag --dry-run per il grafico apigee-org, l'output includerà i comandi necessari per configurare Workload Identity con i nomi corretti di account di servizio Google e account di servizio Kubernetes.

    1. Recupera i comandi per configurare Workload Identity per apigee-org ed esegui il comando in NOTES: nell'output.

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

      L'output dovrebbe contenere istruzioni simili alle seguenti in 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-sa]" \
            --project PROJECT_ID
      

      Il nome del account di servizio Kubernetes ha il formato apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID.

    2. Esegui i comandi per configurare Workload Identity per apigee-mint-task-scheduler.

Vedi anche