Passaggio 4: creazione di un'organizzazione

Hai creato un account e un progetto Google Cloud e abilitato le API. Ora puoi creare la tua organizzazione.

Prerequisiti

Per creare un'organizzazione, devi soddisfare una delle seguenti condizioni:

  • Avere un account Google Cloud. Per impostazione predefinita, un account Google Cloud ti consente di creare un'organizzazione Apigee di valutazione senza costi. Le organizzazioni di valutazione scadono dopo 60 giorni. A quel punto, l'organizzazione verrà eliminata.
  • Avere un account Google Cloud e un abbonamento Apigee a pagamento abilitato all'interno del progetto e dell'account di fatturazione Google Cloud. Un abbonamento a pagamento ti consente di creare implementazioni Apigee complete e scalabili. Contatta il team di vendita Apigee per acquistare un account a pagamento e attivare l'abbonamento.

Per creare una nuova organizzazione ed eseguirne il provisioning:

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

    Linux / MacOS

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

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

    echo $TOKEN

    Il token dovrebbe essere visualizzato 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 completato, utilizza echo, come illustrato nell'esempio seguente:

    echo %TOKEN%

    Il token dovrebbe essere visualizzato come stringa codificata.

  2. Assicurati di aver definito le variabili di ambiente necessarie con i seguenti comandi:
    echo ${PROJECT_ID}
    echo ${ORG_NAME}
    echo ${ORG_DISPLAY_NAME}
    echo ${ORGANIZATION_DESCRIPTION}
    echo ${ANALYTICS_REGION}
    echo ${RUNTIMETYPE}

    Se necessario, crea o ridefinire le seguenti variabili di ambiente per gli elementi dell'organizzazione. Utilizzerai questi elementi nel comando per creare l'organizzazione.

    • PROJECT_ID (Obbligatorio) è il progetto Google Cloud che vuoi associare alla nuova organizzazione ibrida. Questo è l'ID che Google ha generato per te nel Passaggio 2: crea un progetto Google Cloud.
      export PROJECT_ID=your_project_id

      Nome dell'ID progetto con punto finale

    • ORG_NAME (Obbligatorio) è l'ID pubblicità programmatica che vuoi per la tua organizzazione ibrida.
      export ORG_NAME=$PROJECT_ID
    • ORG_DISPLAY_NAME (Facoltativo) è il nome facile da usare per la tua organizzazione. Questo valore non deve essere necessariamente univoco e può includere spazi e caratteri speciali. Ad esempio, "La mia organizzazione ibrida".
      ORG_DISPLAY_NAME="friendly_name"

      I contenuti dei nomi delle variabili che contengono spazi devono essere racchiusi tra virgolette doppie. Ad esempio: "La mia organizzazione".

    • ORGANIZATION_DESCRIPTION (Facoltativo) contiene le informazioni sull'organizzazione che vuoi utilizzare come promemoria del suo scopo. Ad esempio, "La mia prima organizzazione".
      ORGANIZATION_DESCRIPTION="description_text"
    • ANALYTICS_REGION (Obbligatorio) è la regione principale per l'archiviazione dei dati di analisi.
      export ANALYTICS_REGION=analytics_region

      Dove analytics_region corrisponde a uno dei seguenti valori:

      asia-northeast1 asia-south1 asia-east1 asia-southeast1
      australia-southeast1 us-central1 us-east1 us-west1
      asia-southeast2 europe-west1 europe-west2

      Scegli una regione geograficamente vicina o una che soddisfi i requisiti di archiviazione della tua organizzazione.

    • RUNTIMETYPE (Obbligatorio) è il tipo di runtime dell'organizzazione Apigee, dove HYBRID è il runtime ibrido Apigee gestito dall'utente.
      export RUNTIMETYPE=HYBRID
  3. Invia una richiesta POST autenticata all'API Create organizzazioni.

    L'esempio seguente mostra la struttura della richiesta che crea un'organizzazione:

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

    Se la richiesta di creazione viene approvata, l'API Organization dovrebbe rispondere 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 (descritto nel passaggio 5).
    • org_name è l'ID della nuova organizzazione attualmente in fase di creazione.

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

    Se viene visualizzato un errore, vedi Risoluzione dei problemi relativi alla creazione dell'organizzazione.

  4. Salva l'ID operazione a lunga esecuzione in una variabile di ambiente. Sarà utile per 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 Apigee ha restituito nella tua richiesta di creazione iniziale. Per farlo, utilizza l'API Operations. Ad esempio:
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$LONG_RUNNING_OPERATION_ID"

    I seguenti esempi mostrano possibili risposte a questa richiesta:

    IN_PROGRESS

    Se Apigee è ancora in fase di creazione dell'organizzazione, Apigee risponde con uno 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 un po' più a lungo prima di provare a verificare che il processo di creazione sia completo.

    COMPLETATO

    Una volta 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",
        "displayName": "ORG_DISPLAY_NAME",
        "description": "ORGANIZATION_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": {}
        }
      }
    }
    

    Se non hai inserito una descrizione, il campo non verrà visualizzato nella risposta.

Visualizza i dettagli dell'organizzazione

Puoi visualizzare i dettagli dei metadati per l'organizzazione creata utilizzando un'API Apigee. Puoi utilizzare un'API anche per elencare tutte le organizzazioni a cui ha accesso il tuo account Google Cloud. Per eseguire queste azioni, utilizza l'API Organization.

Prima di provare le API, aggiorna il token di autorizzazione:

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

Recupera i dettagli dell'organizzazione

Per visualizzare i dettagli di una singola organizzazione:

Invia una richiesta GET (senza corpo) al seguente endpoint Ottieni l'API Per le organizzazioni:

https://apigee.googleapis.com/v1/organizations/org_name

L'esempio seguente restituisce i dettagli sull'organizzazione $ORG_NAME: In questo esempio, $ORG_NAME è impostato su "apigee-example".

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

La risposta alla tua richiesta contiene i dettagli relativi all'organizzazione specificata in formato JSON.

L'esempio seguente mostra una risposta con dettagli sull'organizzazione apigee-example:

{
  "name": "apigee-example",
  "displayName": "apigee-example-org",
  "description": "Apigee Example Org",
  "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": "TRIAL",
  "projectId": "apigee-example",
  "state": "ACTIVE",
  "billingType": "EVALUATION",
  "expiresAt": "1631421073171",
  "addonsConfig": {
    "advancedApiOpsConfig": {},
    "integrationConfig": {},
    "monetizationConfig": {}
  }
}

Elenco organizzazioni

Per ottenere un elenco di tutte le organizzazioni a cui ha accesso il tuo account Google Cloud:

Invia una richiesta GET (senza corpo) al seguente endpoint dell'API List Organization:

https://apigee.googleapis.com/v1/organizations

Ad esempio:

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

La risposta alla tua richiesta contiene un array di tutte le organizzazioni abilitate per l'ibrido a cui hai accesso, in formato JSON.

L'esempio seguente mostra una risposta con una singola organizzazione, apigee-example:

{
  "organizations": [
    {
      "organization": "apigee-example",
      "projectIds": [
        "apigee-example"
      ]
    },
    {
      "organization": "apigee-example-2",
      "projectIds": [
        "apigee-example-2"
      ]
    }
  ]
}

Risolvere i problemi relativi alla creazione dell'organizzazione

Quando crei un'organizzazione con l'API Create organizzazioni, potresti ricevere una risposta di errore. Le risposte hanno il seguente aspetto:

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

L'esempio seguente mostra una risposta a un errore comune. L'ID organizzazione contiene caratteri non ammessi (non sono consentiti caratteri maiuscoli negli ID organizzazione):

{
  "error": {
    "code": 400,
    "message": "invalid Organization ID \"MY-ORG\": \"MY-ORG\" is an invalid Organization ID",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: invalid Organization ID \"MY-ORG\":
          \"My-ORG\" is an invalid Organization ID [google.rpc.error_details_ext]
          { message: \"invalid Organization ID \\\"MY-ORG\\\": \\\"MY-ORG\\\" is an invalid
          Organization ID\" }"
      }
    ]
  }
}

In questo caso, puoi rinominare l'organizzazione con lettere minuscole e inviare nuovamente la richiesta.

Nella tabella seguente sono elencati gli errori che potresti ricevere e le potenziali soluzioni quando provi a creare una nuova organizzazione:

Codice di errore HTTP Errore HTTP Descrizione
400 Invalid JSON payload received La struttura dei dati nella richiesta contiene un errore di sintassi oppure il percorso dell'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 corpo della richiesta oppure il valore specificato non è tra le opzioni valide.
400 Does not have an Apigee entitlement Il tuo progetto Google Cloud (che hai creato nel Passaggio 2: crea un progetto Google Cloud) non è ancora stato abilitato per l'ambiente ibrido. Questo potrebbe indicare un problema di fatturazione o altri errori relativi al tuo account Google Cloud. Per ulteriori informazioni, contatta il team di vendita Apigee.
401 Request had invalid authentication credentials Il token di autenticazione gcloud è errato 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 o un percorso progetto errati.
403 Unable to retrieve project information L'organizzazione non è ancora stata creata o non è stato eseguito il provisioning. Puoi inviare una richiesta all'API Operations per verificare lo stato dell'operazione a lunga esecuzione, come descritto nel passaggio 5.
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 che ha lo stesso ID di un'organizzazione già esistente. Gli ID organizzazione devono essere univoci per tutti i clienti ibridi. Invia di nuovo con un nuovo ID organizzazione proposto; ad esempio, aggiungi un valore numerico alla fine dell'ID precedente che hai provato.
1 2 3 4 (AVANTI) Passaggio 5: crea un gruppo di ambienti