In questo passaggio, crei un'organizzazione Apigee.
Per creare una nuova organizzazione e eseguirne il provisioning:
-
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 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.
-
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 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 aPROJECT_ID
.ANALYTICS_REGION
(obbligatorio): la regione principale per lo spazio di archiviazione dei dati di analisi. Per un elenco delle regioni di Apigee API Analytics disponibili, consulta Sedi di Apigee.-
RUNTIMETYPE
(obbligatorio): deve essere impostato suHYBRID
.
Residenza dei dati
Linux / MacOS
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="ANALYTICS_REGION"
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 ANALYTICS_REGION="ANALYTICS_REGION"
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 aPROJECT_ID
.ANALYTICS_REGION
: la regione principale per lo spazio di archiviazione dei dati di analisi. Per un elenco delle regioni di Apigee API Analytics disponibili, consulta Sedi di Apigee.-
RUNTIMETYPE
: deve essere impostato suHYBRID
. CONTROL_PLANE_LOCATION
: la posizione in cui vengono archiviati i contenuti principali del cliente, come i pacchetti proxy. Per un elenco, consulta Regioni del piano di controllo dell'API Apigee disponibili.CONSUMER_DATA_REGION
: una sottoregione della regione del piano di controllo. Devi specificare siaCONTROL_PLANE_LOCATION
cheCONSUMER_DATA_REGION
. Per un elenco delle regioni di dati dei consumatori disponibili, consulta Sedi Apigee.BILLING_TYPE
: deve essere impostato su"SUBSCRIPTION"
. Questo è il tipo di fatturazione per la tua organizzazione Apigee hybrid. Per saperne di più, consulta la sezione Diritti di abbonamento.
Ad esempio:
export ORG_NAME=$PROJECT_ID
export ANALYTICS_REGION="us-west1"
export RUNTIMETYPE=HYBRID
export CONSUMER_DATA_REGION="us-west1"
export CONTROL_PLANE_LOCATION="us"
export BILLING_TYPE="SUBSCRIPTION"
- 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"'", "analyticsRegion":"'"$ANALYTICS_REGION"'" }' \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID"
In caso di richiesta di creazione andata a buon fine, 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 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.
- 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
- Puoi controllare lo stato dell'operazione a lunga esecuzione il cui ID è stato restituito dalla richiesta di creazione. A tale scopo, 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 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", "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 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", "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": {} } } }
- 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 i dettagli dell'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": "apigee-example", "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.
{ "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": "apigee-example", "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 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" } ] } }
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. |
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 "Paga quanto consumi" (PAYG). Per domande sui diritti dell'organizzazione, contatta il rappresentante dell'account Google Cloud. |
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. |
403 |
Permission denied on resource project organizations/PROJECT_ID/deployedIngressConfig |
Hai provato a creare un'organizzazione, ma non dispone dei diritti corretti. Per domande sui diritti 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 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. |
Passaggio successivo
Vai al passaggio 3: Crea un gruppo di ambienti.