Passaggio 2: crea un'organizzazione

In questo passaggio devi creare un' organizzazione Apigee.

Per creare una nuova organizzazione ed eseguirne il provisioning:

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

    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

    Il token dovrebbe essere visualizzato come una 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%

    Il token dovrebbe essere visualizzato come una stringa codificata.

  2. Nel passaggio 1, hai creato la PROJECT_ID variabile di ambiente. Aggiungi le seguenti variabili di ambiente. Seleziona la scheda corrispondente al tipo di organizzazione di cui hai bisogno: 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 località in cui vengono archiviati i contenuti principali dei clienti, come i bundle di 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 dei dati dei consumatori disponibili, consulta Località Apigee.
    • BILLING_TYPE: deve essere impostato su "SUBSCRIPTION". Questo è il tipo di fatturazione per la tua organizzazione Apigee hybrid. Per ulteriori informazioni, consulta 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 caso di 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 ricevi un messaggio di errore, consulta Risoluzione dei problemi di creazione dell'organizzazione.

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

    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"

    Gli esempi seguenti mostrano le possibili risposte a questa richiesta:

    IN_PROGRESS

    Se Apigee sta ancora creando l'organizzazione, risponde con lo stato di 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"
      }
    }

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

    FINISHED

    Quando è stato eseguito il provisioning dell'organizzazione, 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"

    Gli esempi seguenti mostrano le possibili risposte a questa richiesta:

    IN_PROGRESS

    Se Apigee sta ancora creando l'organizzazione, risponde con lo stato di 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
        }
      }
    }

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

    FINISHED

    Quando è stato eseguito il provisioning dell'organizzazione, 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 Organizations di Apigee 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 i dettagli dell'organizzazione specificata in formato JSON format.

    {
      "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 i dettagli dell'organizzazione specificata in formato JSON format.

    {
      "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 di 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 tabella seguente elenca gli errori che potresti ricevere e le possibili soluzioni quando provi a creare a nuova organizzazione:

Codice errore HTTP Errore HTTP Descrizione
400 Invalid JSON payload received La struttura dei dati nella richiesta contiene un errore di sintassi oppure il percorso per l'endpoint non è corretto.
400 Invalid organization ID L'ID organizzazione richiesto 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 tuo 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 trattarsi di un problema di fatturazione o di un altro errore correlato 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 provato a creare un'organizzazione che potrebbe non avere diritto all'abbonamento A PAGAMENTO. 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 provato a creare un'organizzazione in un progetto con un diritto "Pay As You Go" (PAYG). Contatta il rappresentante del tuo account Google Cloud per domande sui diritti dell'organizzazione.
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 di cui non è stato eseguito il 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 provato a creare un'organizzazione, ma non hai i diritti corretti. Contatta il rappresentante del tuo account Google Cloud per domande sui diritti dell'organizzazione.
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 provato a 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 la richiesta con un nuovo ID organizzazione proposto; ad esempio, aggiungi un valore numerico alla fine di l'ID precedente che hai provato.

Passaggio successivo

Vai al passaggio 3: crea un gruppo di ambienti.