Passaggio 4: creazione di un'organizzazione

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

Prerequisito

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 non pagata. 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 nel progetto e nell'account di fatturazione Google Cloud. Un abbonamento a pagamento ti consente di creare implementazioni Apigee complete e scalabili. Contatta il team di vendita di Apigee per acquistare un account a pagamento e attivare l'abbonamento.

Per creare una nuova organizzazione e eseguirne il provisioning:

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

    Linux / MacOS

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

    Per verificare che il token sia stato inserito, 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 inserito, utilizza echo, come illustrato nell'esempio seguente:

    echo %TOKEN%

    Il token dovrebbe essere visualizzato come stringa codificata.

  2. Crea le seguenti variabili di ambiente per gli elementi dell'organizzazione. Li utilizzerai nel comando per creare l'organizzazione.
    • PROJECT_ID (obbligatorio) è il progetto Google Cloud che vuoi collegare alla nuova organizzazione abilitata all'ibrido. Si tratta dell'ID generato da Google per te nel passaggio 2: creazione di un progetto Google Cloud.
      export PROJECT_ID=your_project_id

      Nome dell'ID progetto con punto finale

    • ORG_NAME (obbligatorio) è l'ID programmatico che vuoi per la tua organizzazione abilitata all'uso ibrido.
      export ORG_NAME=$PROJECT_ID
    • ORG_DISPLAY_NAME (Facoltativo) è il nome facile da ricordare della tua organizzazione. Questo valore non deve essere 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) sono 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 lo spazio di archiviazione dei dati di analisi.
      export ANALYTICS_REGION=analytics_region

      dove analytics_region è 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 chesoddisfa i requisiti di archiviazione della tua organizzazione.

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

    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"

    In caso di richiesta di creazione andata a buon fine, l'API dell'organizzazione 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 (descritta nel passaggio 5).
    • org_name è l'ID della nuova organizzazione che è attualmente in fase di creazione.

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

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

  4. Salva l'ID 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 delloperazione a lunga esecuzione il cui ID Apigee è stato restituito nella richiesta di creazione iniziale. A tale scopo, 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 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 un po' di più prima di tentare di verificare il completamento della procedura di creazione.

    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, questo campo non viene visualizzato nella risposta.

Visualizzare i dettagli dell'organizzazione

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

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

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

Visualizzare i dettagli dell'organizzazione

Per visualizzare i dettagli di una singola organizzazione:

Invia una richiesta GET (senza corpo) al seguente endpoint dell'API Get Organizations:

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

Il seguente esempio recupera i dettagli dell'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 dell'organizzazione specificata in formato JSON.

L'esempio seguente mostra una risposta con i dettagli dell'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 visualizzare 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 organizations:

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

Ad esempio:

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

La risposta alla richiesta contiene un array di tutte le organizzazioni abilitate all'utilizzo dell'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"
      ]
    }
  ]
}

Risoluzione dei problemi relativi alla creazione dell'organizzazione

Quando crei un'organizzazione con l'API Create organizations, potresti ricevere una risposta con un 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"
      }
    ]
  }
}

L'esempio seguente mostra una risposta a un errore comune: l'ID organizzazione contiene caratteri illegali (i caratteri maiuscoli non sono consentiti 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.

La seguente tabella elenca gli errori che potresti ricevere e le potenziali 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 richiesto non può contenere lettere maiuscole o caratteri speciali diversi dai trattini. Deve contenere solo lettere minuscole, numeri e/o trattini. Può contenere fino a 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 progetto Google Cloud (creato nel passaggio 2: creazione di un progetto Google Cloud) non è ancora stato abilitato per il funzionamento ibrido. Potrebbe trattarsi di un problema di fatturazione o di un altro errore relativo al tuo account Google Cloud. Per ulteriori informazioni, contatta il team di vendita di 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 progetto o un percorso non corretto.
403 Unable to retrieve project information L'organizzazione non è ancora stata creata o non è stato ancora eseguito il provisioning. Puoi inviare una richiesta all'API Operations per controllare 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 soltanto un'organizzazione per progetto.
409 Org proposed_org_name already exists Hai provato a creare un'organizzazione con lo stesso ID di un'altra già esistente. Gli ID organizzazione devono essere univoci per tutti i clienti ibride. Invia nuovamente con un nuovo ID organizzazione proposto; ad esempio, accoda un valore numerico alla fine dell'ID precedente che hai provato.
1 2 3 4 (AVANTI) Passaggio 5: crea un gruppo di ambienti