Passaggio 2: crea un'organizzazione

In questo passaggio, crei un'organizzazione Apigee.

Per creare una nuova organizzazione e eseguirne il provisioning:

  1. Nella riga di comando, recupera le credenziali di autenticazione gcloud utilizzando il comando seguente:

    Linux / macOS

    export TOKEN=$(gcloud auth print-access-token)

    Per verificare che il token sia stato compilato, utilizza echo, come mostrato nell'esempio seguente:

    echo $TOKEN

    Dovrebbe essere visualizzato il token come stringa codificata.

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    Per verificare che il token sia stato compilato, utilizza echo, come mostrato nell'esempio seguente:

    echo %TOKEN%

    Dovrebbe essere visualizzato il token come stringa codificata.

  2. Nel passaggio 1, hai creato la variabile di ambiente PROJECT_ID. Aggiungi le seguenti variabili di ambiente. Seleziona la scheda corrispondente al tipo di organizzazione che ti serve: Nessuna residenza dei dati o con Residenza dei dati:

    Nessuna residenza dei dati

    Linux / macOS

    export ORG_NAME=$PROJECT_ID
    export ANALYTICS_REGION="ANALYTICS_REGION"
    export RUNTIMETYPE=HYBRID

    Windows

    set ORG_NAME=$PROJECT_ID
    set ANALYTICS_REGION="ANALYTICS_REGION"
    set RUNTIMETYPE=HYBRID

    Dove:

    • ORG_NAME (obbligatorio): questo valore deve corrispondere a PROJECT_ID.
    • ANALYTICS_REGION (obbligatorio): la regione principale per l'archiviazione dei dati di analisi. Per un elenco delle regioni di Apigee API Analytics disponibili, consulta Località Apigee.
    • RUNTIMETYPE (obbligatorio): deve essere impostato su HYBRID.

    Residenza dei dati

    Linux / macOS

    export ORG_NAME=$PROJECT_ID
    export RUNTIMETYPE=HYBRID
    export CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    export CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    export BILLING_TYPE="SUBSCRIPTION"

    Windows

    set ORG_NAME=$PROJECT_ID
    set RUNTIMETYPE=HYBRID
    set CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
    set CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
    set BILLING_TYPE="SUBSCRIPTION"

    Dove:

    • ORG_NAME: questo valore deve corrispondere a PROJECT_ID.
    • RUNTIMETYPE: deve essere impostato su HYBRID.
    • CONTROL_PLANE_LOCATION: la posizione in cui vengono archiviati i contenuti principali del cliente, come i bundle proxy. Per un elenco, consulta Regioni del control plane dell'API Apigee disponibili.
    • CONSUMER_DATA_REGION: una sotto-regione della regione del control plane. Devi specificare sia CONTROL_PLANE_LOCATION sia CONSUMER_DATA_REGION. Per un elenco delle regioni di dati dei consumatori disponibili, consulta Località Apigee.
    • BILLING_TYPE: deve essere impostato su "SUBSCRIPTION". Questo è il tipo di fatturazione per la tua organizzazione Apigee ibrida. Per ulteriori informazioni, consulta la sezione Diritti di abbonamento.

    Ad esempio:

    export ORG_NAME=$PROJECT_ID
    export RUNTIMETYPE=HYBRID
    export CONSUMER_DATA_REGION="us-west1"
    export CONTROL_PLANE_LOCATION="us"
    export BILLING_TYPE="SUBSCRIPTION"
    
  3. Chiama la seguente API Apigee per creare l'organizzazione:

    Nessuna residenza dei dati

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "analyticsRegion":"'"$ANALYTICS_REGION"'"
      }' \
      "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    Residenza dei dati

    curl -H "Authorization: Bearer $TOKEN" -X POST -H "content-type:application/json" \
      -d '{
        "name":"'"$ORG_NAME"'",
        "billingType":"'"$BILLING_TYPE"'",
        "runtimeType":"'"$RUNTIMETYPE"'",
        "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'"
      }' \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"

    In una richiesta di creazione riuscita, l'API Organizations risponde con un messaggio simile al seguente:

    {
      "name": "organizations/org_name/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/org_name",
        "state": "IN_PROGRESS"
      }
    }

    Dove:

    • LONG_RUNNING_OPERATION_ID è l'UUID di un'operazione asincrona a lunga esecuzione. Puoi utilizzare questo ID per controllare lo stato della richiesta di creazione dell'organizzazione (descritta nel passaggio 5).
    • org_name è l'ID della nuova organizzazione in fase di creazione.

    Come indicato dalla proprietà state nella risposta, Apigee ha iniziato a creare la nuova organizzazione, quindi il suo stato è IN_PROGRESS. Questa procedura può richiedere alcuni minuti.

    Se viene visualizzato un messaggio di errore, consulta Risoluzione dei problemi di creazione dell'organizzazione.

  4. Salva l'ID operazione a lunga esecuzione in una variabile di ambiente. Ti sarà utile per le future attività di gestione.

    Sintassi

    export LONG_RUNNING_OPERATION_ID=LONG_RUNNING_OPERATION_ID

    Esempio

    export LONG_RUNNING_OPERATION_ID=6abc8a72-46de-f9da-bcfe-70d9ab347e4f
  5. Puoi controllare lo stato dell'operazione a lunga esecuzione il cui ID è stato restituito dalla richiesta di creazione. Per farlo, utilizza l'API Operations. Ad esempio:

    Nessuna residenza dei dati

    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    I seguenti esempi mostrano le possibili risposte a questa richiesta:

    IN_PROGRESS

    Se Apigee sta ancora creando l'organizzazione, risponde con lo stato IN_PROGRESS. Ad esempio:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "IN_PROGRESS"
      }
    }

    Ti consigliamo di attendere ancora un po' prima di tentare di verificare che la procedura di creazione sia completata.

    TERMINATO

    Quando l'organizzazione è stata sottoposta al provisioning, lo stato dell'operazione a lunga esecuzione è FINISHED. Ad esempio:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "EVALUATION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }

    Residenza dei dati

    curl -H "Authorization: Bearer $TOKEN" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    I seguenti esempi mostrano le possibili risposte a questa richiesta:

    IN_PROGRESS

    Se Apigee sta ancora creando l'organizzazione, risponde con lo stato IN_PROGRESS. Ad esempio:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "IN_PROGRESS",
        "progress": {
          "percentDone": 30
        }
      }
    }

    Ti consigliamo di attendere ancora un po' prima di tentare di verificare che la procedura di creazione sia completata.

    TERMINATO

    Quando l'organizzazione è stata sottoposta al provisioning, lo stato dell'operazione a lunga esecuzione è FINISHED. Ad esempio:

    {
      "name": "organizations/ORG_NAME/operations/LONG_RUNNING_OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "INSERT",
        "targetResourceName": "organizations/ORG_NAME",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.Organization",
        "name": "ORG_NAME",
        "description": "",
        "createdAt": "1626237148461",
        "lastModifiedAt": "1626237149384",
        "properties": {
          "property": [
            {
              "name": "features.hybrid.enabled",
              "value": "true"
            },
            {
              "name": "features.mart.connect.enabled",
              "value": "true"
            }
          ]
        },
        "analyticsRegion": "ANALYTICS_REGION",
        "runtimeType": "HYBRID",
        "subscriptionType": "TRIAL",
        "state": "ACTIVE",
        "billingType": "SUBSCRIPTION",
        "apiConsumerDataLocation": "CONSUMER_DATA_REGION",
        "expiresAt": "1631421073171",
        "addonsConfig": {
          "advancedApiOpsConfig": {},
          "integrationConfig": {},
          "monetizationConfig": {}
        }
      }
    }
  6. Puoi utilizzare l'API Apigee Organizations per recuperare informazioni su un'organizzazione dopo la sua creazione.

    Ad esempio:

    Nessuna residenza dei dati

    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    La risposta alla tua richiesta contiene dettagli sull'organizzazione specificata in formato JSON.

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "my-project",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

    Residenza dei dati

    curl -H "Authorization: Bearer $TOKEN" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME"

    La risposta alla tua richiesta contiene dettagli sull'organizzazione specificata in formato JSON.

    {
      "name": "apigee-example",
      "createdAt": "1626237148461",
      "lastModifiedAt": "1626237149384",
      "properties": {
        "property": [
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          },
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-west1",
      "runtimeType": "HYBRID",
      "subscriptionType": "PAID",
      "projectId": "my-project",
      "state": "ACTIVE",
      "billingType": "SUBSCRIPTION",
      "expiresAt": "1631421073171",
      "addonsConfig": {
        "advancedApiOpsConfig": {},
        "integrationConfig": {},
        "monetizationConfig": {}
      }
    }

Risoluzione dei problemi relativi alla creazione dell'organizzazione

Quando crei un'organizzazione con l'API Create organizations, potresti ricevere una risposta di errore. Le risposte sono simili alle seguenti:

{
  "error": {
    "code": HTTP_error_code,
    "message": "short_error_message",
    "status": "high_level_error_type",
    "details": [
      {
        "@type": "specific_error_type",
        "detail": "expanded_error_description"
      }
    ]
  }
}

La seguente tabella elenca gli errori che potresti ricevere e le possibili soluzioni quando provi a creare una nuova organizzazione:

Codice errore HTTP Errore HTTP Descrizione
400 Invalid JSON payload received La struttura dei dati nella richiesta contiene un errore di sintassi o il percorso all'endpoint non è corretto.
400 Invalid organization ID L'ID organizzazione che richiedi non può contenere lettere maiuscole o caratteri speciali diversi dai trattini. Deve contenere solo lettere minuscole, numeri e/o trattini. Può contenere un massimo di 32 caratteri.
400 Unsupported analytics region Non hai specificato il valore di analyticsRegion nel corpo della richiesta oppure il valore specificato non è una delle opzioni valide.
400 Does not have an Apigee entitlement Il tuo progetto Google Cloud non è ancora stato abilitato per l'ibrido. Potrebbe indicare un problema di fatturazione o un altro errore relativo al tuo account Google Cloud. Per ulteriori informazioni, contatta il team di vendita di Apigee.
400 'global' violates constraint in constraints/gcp.resourceLocations on the resource projects/PROJECT_ID, Control Plane Region Hai tentato di creare un'organizzazione che potrebbe non avere diritto all'abbonamento PAGATO. Le organizzazioni Apigee Hybrid di tipo EVAL non supportano la residenza dei dati.
400 runtimeType HYBRID is not supported for PAYG_V2, use CLOUD instead: invalid argument Hai tentato di creare un'organizzazione in un progetto con un diritto "Pay As You Go" (PAYG). Per domande sul diritto dell'organizzazione, contatta il rappresentante dell'account Google Cloud.
401 Request had invalid authentication credentials Il token di autenticazione gcloud non è valido o è obsoleto oppure non ne hai incluso uno nella richiesta. Genera un nuovo token e invia di nuovo l'indirizzo.
403 Permission denied on resource project PROJECT_ID Potresti aver inviato una richiesta contenente un ID progetto o un percorso errato.
403 Unable to retrieve project information L'organizzazione non è ancora stata creata o sottoposta a provisioning. Puoi inviare una richiesta all'API Operations per controllare lo stato dell'operazione a lunga esecuzione, come descritto nel passaggio 5.
403 Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig Hai tentato di creare un'organizzazione, ma non dispone dei diritti corretti. Per domande sul diritto dell'organizzazione, contatta il rappresentante dell'account Google Cloud.
409 Organization already exists Hai provato a creare più di un'organizzazione per il progetto Google Cloud. Puoi creare una sola organizzazione per progetto.
409 Org PROPOSED_ORG_NAME already exists Hai tentato di creare un'organizzazione con lo stesso ID di una già esistente. Gli ID organizzazione devono essere univoci per tutti i clienti ibridi. Invia di nuovo con un nuovo ID organizzazione proposto, ad esempio aggiungendo un valore numerico alla fine dell'ID precedente che hai provato.

Passaggio successivo

Vai al passaggio 3: crea un gruppo di ambienti.