Questa pagina si applica ad Apigee, ma non ad Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Questo documento descrive come installare e configurare Apigee dalla riga di comando con il peering VPC. Questi passaggi si applicano ai modelli di prezzo in abbonamento e con pagamento a consumo per le organizzazioni a pagamento con o senza la residenza dei dati attivata.
Riepilogo dei passaggi
I passaggi di provisioning sono i seguenti:
- Passaggio 1: definisci le variabili di ambiente:
Configura
gcloude definisci le variabili di ambiente. Google Cloud CLI gestisce l'autenticazione, la configurazione locale, il flusso di lavoro degli sviluppatori e le interazioni con le API di Google Cloud. - Passaggio 2: abilita le API: Apigee richiede l'abilitazione di diverse API Google Cloud.
- Passaggio 3: crea l'identità di servizio Apigee: questo service account viene utilizzato dalle librerie client di Google Cloud per l'autenticazione con le API Google Cloud.
- Passaggio 4: configura Service Networking: Service Networking automatizza la configurazione della connettività privata (utilizzando il peering di rete VPC) tra la tua rete e Apigee.
- Passaggio 5: crea un'organizzazione: un'organizzazione Apigee (a volte chiamata org) è il contenitore di primo livello in Apigee. Include tutti gli ambienti e i gruppi di ambienti, gli utenti, i proxy API e le risorse correlate.
- Passaggio 6: crea un'istanza di runtime: un'istanza, o runtime, è il luogo in cui vengono archiviati il progetto e i servizi correlati; fornisce l'endpoint rivolto agli utenti per i tuoi servizi.
- Passaggio 7: crea un ambiente: un proxy API deve essere implementato in un ambiente e aggiunto a un gruppo di ambienti prima che le API che espone siano accessibili tramite la rete.
- Passaggio 8: configura il routing: consenti l'accesso esterno o solo interno alla tua API.
- Passaggio 9: deployment di un proxy di esempio: testa il provisioning eseguendo il deployment e chiamando un proxy API.
Passaggio 1: definizione delle variabili di ambiente
Configura gcloud e definisci le variabili di ambiente da utilizzare nei passaggi successivi:
- Assicurati di aver completato i requisiti di configurazione elencati in Prima di iniziare.
- Devi aver installato Cloud SDK. Se devi installarlo, consulta Installazione di Cloud SDK.
- Inizializza Cloud SDK, come descritto in Inizializzare gcloud CLI, o assicurati che il progetto Google Cloud che hai creato in Prerequisiti sia il progetto predefinito per
gcloud. - Definisci le seguenti variabili di ambiente nel terminale dei comandi.
Seleziona la scheda corrispondente al tipo di organizzazione che ti serve:
Nessuna residenza dei dati o con
Residenza dei dati:
Nessuna residenza dei dati
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"ANALYTICS_REGION="YOUR_ANALYTICS_REGION"BILLING_TYPE="YOUR_BILLING_TYPE"Dove:
-
AUTH definisce l'intestazione
Authenticationcon un token di connessione. Utilizzerai questa intestazione quando chiami le API Apigee. Tieni presente che il token scade dopo un periodo di tempo e, quando ciò accade, puoi rigenerarlo semplicemente utilizzando lo stesso comando. Per maggiori informazioni, consulta la pagina di riferimento del comando print-access-token. - PROJECT_ID è l'ID progetto Cloud che hai creato nell'ambito dei Prerequisiti.
- PROJECT_NUMBER è il numero del progetto Cloud che hai creato nell'ambito dei prerequisiti.
-
RUNTIME_LOCATION è la località fisica in cui si trova l'istanza Apigee che creerai in un secondo momento. Per un elenco delle località di runtime disponibili, consulta Località Apigee.
-
ANALYTICS_REGION è la posizione fisica in cui verranno archiviati i dati di analisi di Apigee. Per un elenco delle regioni disponibili di Apigee API Analytics, consulta Località Apigee.
RUNTIME_LOCATION e ANALYTICS_REGION possono essere la stessa regione, ma non è obbligatorio.
-
BILLING_TYPE è il tipo di fatturazione per l'organizzazione che crei. I valori validi sono:
PAYGper le organizzazioni con Pay-as-you-go.SUBSCRIPTIONper le organizzazioni con abbonamento.
Residenza dei dati
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"BILLING_TYPE="YOUR_BILLING_TYPE"Dove:
-
AUTH definisce l'intestazione
Authenticationcon un token di connessione. Utilizzerai questa intestazione quando chiami le API Apigee. Tieni presente che il token scade dopo un periodo di tempo e, quando ciò accade, puoi rigenerarlo semplicemente utilizzando lo stesso comando. Per maggiori informazioni, consulta la pagina di riferimento del comando print-access-token. - PROJECT_ID è l'ID progetto Cloud che hai creato nell'ambito dei Prerequisiti.
- PROJECT_NUMBER è il numero del progetto Cloud che hai creato nell'ambito dei prerequisiti.
-
RUNTIME_LOCATION è la località fisica in cui si trova l'istanza Apigee che creerai in un secondo momento. Per un elenco delle località di runtime disponibili, consulta Località Apigee.
La posizione di runtime deve trovarsi all'interno della posizione del control plane. - CONTROL_PLANE_LOCATION è la posizione fisica in cui verranno archiviati i dati del control plane Apigee. Per un elenco delle località del control plane disponibili, consulta Località Apigee.
- CONSUMER_DATA_REGION è una sottoregione 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 è il tipo di fatturazione per l'organizzazione che crei. I valori validi sono:
PAYGper le organizzazioni con Pay-as-you-go.SUBSCRIPTIONper le organizzazioni con abbonamento.
-
AUTH definisce l'intestazione
- (Facoltativo) Controlla il tuo lavoro ripetendo i valori che hai appena impostato. Tieni presente che quando vuoi
utilizzare una variabile nei comandi, anteponi al nome della variabile il simbolo del dollaro
($).
Nessuna residenza dei dati
echo $AUTH
echo $PROJECT_IDecho $PROJECT_NUMBERecho $RUNTIME_LOCATIONecho $ANALYTICS_REGIONecho $BILLING_TYPELe risposte ai comandi
echodovrebbero essere simili alle seguenti:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us-west1 SUBSCRIPTION
Residenza dei dati
echo $AUTH
echo $PROJECT_IDecho $PROJECT_NUMBERecho $RUNTIME_LOCATIONecho $CONTROL_PLANE_LOCATIONecho $CONSUMER_DATA_REGIONecho $BILLING_TYPELe risposte ai comandi
echodovrebbero essere simili alle seguenti:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us us-west1 SUBSCRIPTION
Passaggio 2: attivazione delle API
-
Apigee richiede l'abilitazione di diverse API Google Cloud. Abilitali eseguendo questo comando
services enable:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com \ apihub.googleapis.com \ compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID (Facoltativo) Per controllare il tuo lavoro, utilizza il comando
services listper mostrare tutte le API abilitate:gcloud services list
La risposta mostra tutti i servizi abilitati, incluse le API che hai appena abilitato.
Passaggio 3: crea l'identità di servizio Apigee
-
Crea l'identità di servizio Apigee:
gcloud beta services identity create --service=apigee.googleapis.com \ --project=$PROJECT_ID Verifica che l'agente sia stato creato correttamente. La risposta deve mostrare il nome dell'agente nel seguente formato:
service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com. ad esempio:Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
Passaggio 4: configurazione del networking di servizi
In questo passaggio, allochi una coppia di intervalli di indirizzi IP (un intervallo CIDR /22 e /28) ad Apigee ed esegui il peering VPC tra la tua rete e quella di Apigee. Ogni istanza Apigee richiede un intervallo CIDR non sovrapposto di /22 e /28. Al piano di runtime Apigee vengono assegnati indirizzi IP all'interno di questo intervallo CIDR. Di conseguenza, è importante che l'intervallo sia riservato ad Apigee e non utilizzato da altre applicazioni nella tua rete VPC. Per ulteriori informazioni e considerazioni importanti, consulta Informazioni sugli intervalli di peering.
Tieni presente che stai creando un intervallo IP di rete sufficiente per un'istanza Apigee. Se prevedi di creare altre istanze Apigee, devi ripetere questo passaggio per ciascuna. Gli intervalli non possono essere condivisi tra le istanze. Vedi anche Espansione di Apigee in più regioni.
- Crea queste variabili di ambiente:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAMEDove:
- RANGE_NAME è il nome dell'intervallo di indirizzi IP che stai creando.
Puoi assegnare all'intervallo il nome che preferisci. Ad esempio:
google-svcs - NETWORK_NAME è il nome della risorsa di rete in cui devono essere riservati gli indirizzi.
Google crea una rete predefinita (denominata
default) per ogni nuovo progetto, quindi puoi utilizzarla. Tuttavia, Google sconsiglia di utilizzare la rete predefinita per qualsiasi altro scopo diverso dal test.
- RANGE_NAME è il nome dell'intervallo di indirizzi IP che stai creando.
Puoi assegnare all'intervallo il nome che preferisci. Ad esempio:
- Crea un intervallo IP di rete con una lunghezza CIDR di /22:
gcloud compute addresses create $RANGE_NAME \ --global \ --prefix-length=22 \ --description="Peering range for Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
Dove
--addressesti consente di specificare facoltativamente un intervallo di indirizzi. Ad esempio, per allocare il blocco CIDR192.168.0.0/22, specifica192.168.0.0per l'indirizzo e22per la lunghezza del prefisso. Vedi anche Creazione di un'allocazione IP.Se non fornisci il parametro
--addresses, gcloud seleziona un intervallo di indirizzi disponibile per te.In caso di esito positivo,
gcloudrisponde con quanto segue:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
Dopo aver creato un intervallo di indirizzi IP, questi vengono associati al progetto finché non li rilasci.
- Verifica che l'intervallo IP di rete sia stato creato con una lunghezza CIDR di /22:
gcloud compute addresses list --global --project=$PROJECT_IDgcloud compute addresses describe $RANGE_NAME --global --project=$PROJECT_ID - Crea un intervallo IP di rete con una lunghezza CIDR di /28. Questo intervallo è obbligatorio e viene
utilizzato da Apigee per la risoluzione dei problemi e non può essere personalizzato o modificato.
gcloud compute addresses create google-managed-services-support-1 \ --global \ --prefix-length=28 \ --description="Peering range for supporting Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
Dove
--addressesti consente di specificare facoltativamente un intervallo di indirizzi. Ad esempio, per allocare il blocco CIDR192.168.0.0/28, specifica192.168.0.0per l'indirizzo e28per la lunghezza del prefisso. Vedi anche Creazione di un'allocazione IP.Se non fornisci il parametro
--addresses, gcloud seleziona un intervallo di indirizzi disponibile per te. - Verifica che l'intervallo IP di rete sia stato creato con una lunghezza CIDR di /28:
gcloud compute addresses list --global --project=$PROJECT_IDgcloud compute addresses describe google-managed-services-support-1 --global \ --project=$PROJECT_ID - Connetti i tuoi servizi alla rete utilizzando il seguente comando:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK_NAME \ --ranges=$RANGE_NAME,google-managed-services-support-1 \ --project=$PROJECT_ID
Il completamento di questa operazione può richiedere diversi minuti. In caso di esito positivo,
gcloudrisponde con quanto segue, dove OPERATION_ID è l'UUID dell'LRO.Operation "operations/OPERATION_ID" finished successfully.
- Dopo qualche minuto, verifica se il peering VPC è riuscito:
gcloud services vpc-peerings list \ --network=$NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --project=$PROJECT_ID
Apigee crea una connessione tra la tua rete e i servizi di Google. In particolare, Apigee connette il tuo progetto all'API Service Networking tramite il peering VPC. Apigee associa anche gli indirizzi IP al tuo progetto.
Passaggio 5: creazione di un'organizzazione
Prima di poter creare un'organizzazione, devi creare un portachiavi e una chiave di crittografia del database di runtime (vedi passaggio 1) e, se utilizzi la residenza dei dati, portachiavi e chiavi di crittografia del control plane (vedi passaggio 2). Queste chiavi Cloud KMS criptano i dati archiviati e replicati nelle posizioni del runtime e del control plane. Apigee utilizza queste entità per criptare i dati delle applicazioni, come KVM, cache e secret client, che vengono poi memorizzati nel database. Per saperne di più, vedi Informazioni sulle chiavi di crittografia Apigee.
-
Crea una chiave automatizzata e una chiave di crittografia del database di runtime.
-
Definisci una variabile di ambiente per la posizione dell'anello e della chiave di crittografia del database di runtime. In questo modo, quando li crei, garantisci la coerenza e ti sarà più facile seguire la documentazione.
Il valore è la posizione fisica in cui sono archiviati l'anello di chiavi e la chiave di crittografia del database di runtime.
Regione singola
Configurazioni a regione singola (in cui hai una sola istanza in una regione): scegli tra le posizioni regionali KMS supportate.
Ad esempio:
RUNTIMEDBKEY_LOCATION="us-west1"
Il valore può essere uguale a $RUNTIME_LOCATION (anch'essa una regione), ma non è obbligatorio. Tuttavia, se sono uguali, le prestazioni potrebbero migliorare.
Più regioni
Configurazioni multi-regione:scegli tra le località multi-regione supportate (ad esempio
usoeurope) o le località dual-region.Ad esempio:
RUNTIMEDBKEY_LOCATION="us"
Se hai una configurazione multiregionale negli Stati Uniti, ti consigliamo di utilizzare
usper la tua posizione, se possibile. Altrimenti, utilizzanam4. - Definisci le variabili di ambiente per i keyring e i nomi delle chiavi del database.
Il nome del portachiavi deve essere univoco per la tua organizzazione. Se crei una seconda o successiva regione, il nome non può essere uguale a quello di altri portachiavi.
RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME - (Facoltativo) Controlla il tuo lavoro ripetendo i valori che hai appena impostato. Ricorda che quando vuoi
utilizzare una variabile nei comandi, anteponi al nome della variabile il simbolo del dollaro
($).
echo $RUNTIMEDBKEY_LOCATION
echo $RUNTIMEDB_KEY_RING_NAMEecho $RUNTIMEDB_KEY_NAME - Crea un nuovo keyring:
gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_IDLa posizione della chiave di crittografia del database di runtime di Apigee supporta tutte le posizioni Cloud KMS che supportano Cloud HSM e Cloud EKM.
Crea una chiave:
gcloud kms keys create $RUNTIMEDB_KEY_NAME \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --purpose "encryption" \ --project $PROJECT_IDQuesto comando crea la chiave e la aggiunge al keyring.
Recupera l'ID chiave:
gcloud kms keys list \ --location=$RUNTIMEDBKEY_LOCATION \ --keyring=$RUNTIMEDB_KEY_RING_NAME \ --project=$PROJECT_ID
L'ID chiave ha la seguente sintassi (simile a un percorso file):
projects/PROJECT_ID/locations/RUNTIMEDBKEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
Inserisci l'ID chiave in una variabile di ambiente. Utilizzerai questa variabile in un comando successivo:
RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
Concedi l'accesso all'agente di servizio Apigee per utilizzare la nuova chiave:
gcloud kms keys add-iam-policy-binding $RUNTIMEDB_KEY_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
Questo comando associa la chiave all'agente di servizio Apigee.
Al termine della richiesta,
gcloudrisponde con un risultato simile al seguente:Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
Se ricevi un errore simile al seguente:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
Assicurati di aver utilizzato il numero del progetto e non il nome del progetto nell'indirizzo email del account di servizio.
-
- Se utilizzi la residenza dei dati, crea un portachiavi e una chiave di crittografia del control plane. Se non utilizzi la residenza dei dati, vai al passaggio 3.
- Definisci una variabile di ambiente per la posizione dell'anello e della chiave di crittografia del database del piano di controllo:
CONTROL_PLANE_LOCATION=YOUR_CONTROL_PLANE_LOCATION
CONSUMER_DATA_REGION=YOUR_CONSUMER_DATA_REGIONDove:
- CONTROL_PLANE_LOCATION è la posizione fisica in cui verranno archiviati i dati del control plane Apigee. Per un elenco delle località del control plane disponibili, consulta Località Apigee.
- CONSUMER_DATA_REGION è una sottoregione 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.
Definisci le variabili di ambiente per i portachiavi e i nomi delle chiavi del database del control plane.
Il nome del portachiavi deve essere univoco per la tua organizzazione.
CONTROL_PLANE_KEY_RING_NAME=YOUR_CONTROL_PLANE_KEY_RING_NAME
CONTROL_PLANE_KEY_NAME=YOUR_CONTROL_PLANE_KEY_NAMECONSUMER_DATA_KEY_RING_NAME=YOUR_CONSUMER_DATA_KEY_RING_NAMECONSUMER_DATA_KEY_NAME=YOUR_CONSUMER_DATA_REGION_KEY_NAMEDove:
- CONTROL_PLANE_KEY_RING_NAME è il nome delle chiavi automatizzate che utilizzerai per identificare le chiavi automatizzate di crittografia del control plane.
- CONTROL_PLANE_KEY_NAME è il nome della chiave che utilizzerai per identificare la chiave di crittografia del control plane.
- CONSUMER_DATA_KEY_RING_NAME è il nome delle chiavi automatizzate che utilizzerai per identificare le chiavi automatizzate di crittografia della regione dei dati dei consumatori.
- CONSUMER_DATA_KEY_NAME è il nome della chiave che utilizzerai per identificare la chiave di crittografia della regione dei dati dei consumatori.
- Crea un nuovo keyring:
gcloud kms keyrings create $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --project $PROJECT_ID
gcloud kms keyrings create $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --project $PROJECT_ID
- Crea una chiave:
gcloud kms keys create $CONTROL_PLANE_KEY_NAME \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --location $CONTROL_PLANE_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
gcloud kms keys create $CONSUMER_DATA_KEY_NAME \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --location $CONSUMER_DATA_REGION \ --purpose "encryption" \ --project $PROJECT_ID
Questo comando crea la chiave e la aggiunge al keyring.
Recupera l'ID chiave:
gcloud kms keys list \ --location=$CONTROL_PLANE_LOCATION \ --keyring=$CONTROL_PLANE_KEY_RING_NAME \ --project=$PROJECT_ID
gcloud kms keys list \ --location=$CONSUMER_DATA_REGION \ --keyring=$CONSUMER_DATA_KEY_RING_NAME \ --project=$PROJECT_ID
L'ID chiave ha la seguente sintassi (simile a un percorso file):
projects/PROJECT_ID/locations/CONTROL_PLANE_LOCATION/keyRings/CONTROL_PLANE_KEY_RING_NAME/cryptoKeys/CONTROL_PLANE_KEY_NAME
projects/PROJECT_ID/locations/CONSUMER_DATA_REGION/keyRings/CONSUMER_DATA_KEY_RING_NAME/cryptoKeys/CONSUMER_DATA_KEY_NAME
- Inserisci l'ID chiave in una variabile di ambiente. Utilizzerai questa variabile in un comando successivo:
CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
- Concedi l'accesso all'agente di servizio Apigee per utilizzare la nuova chiave:
gcloud kms keys add-iam-policy-binding $CONTROL_PLANE_KEY_NAME \ --location $CONTROL_PLANE_LOCATION \ --keyring $CONTROL_PLANE_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
gcloud kms keys add-iam-policy-binding $CONSUMER_DATA_KEY_NAME \ --location $CONSUMER_DATA_REGION \ --keyring $CONSUMER_DATA_KEY_RING_NAME \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
Questo comando associa la chiave all'agente di servizio Apigee. Al termine della richiesta, gcloud risponde con un messaggio simile al seguente:
Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
Se ricevi un errore simile al seguente:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
Assicurati di aver utilizzato il numero di progetto e non il nome del progetto nell'indirizzo email del service account.
-
Crea l'organizzazione inviando la seguente richiesta all'API organizations di Apigee:
Nessuna residenza dei dati
curl "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "analyticsRegion":"'"$ANALYTICS_REGION"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
Dove:
-ddefinisce il payload dei dati per la richiesta. Questo payload deve includere quanto segue:name: identifica la tua nuova organizzazione. Deve avere lo stesso nome dell'ID progetto.analyticsRegion: specifica la posizione fisica in cui verranno archiviati i dati di analisi.runtimeType: imposta questo valore suCLOUD.billingType: specifica il tipo di fatturazione dell'organizzazione creata.authorizedNetwork: identifica la rete di peering che hai specificato in Configura il servizio di rete.runtimeDatabaseEncryptionKeyName: l'ID della chiave di crittografia dell'applicazione che hai creato nel passaggio precedente. Ricorda che l'ID è strutturato come un percorso file. Ad esempio:projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Residenza dei dati
Crea un'organizzazione utilizzando l'API:
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "controlPlaneEncryptionKeyName":"'"$CONTROL_PLANE_KEY_ID"'", "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'", "apiConsumerDataEncryptionKeyName":"'"$CONSUMER_DATA_KEY_ID"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'Dove:
-ddefinisce il payload dei dati per la richiesta. Questo payload deve includere quanto segue:name: identifica la tua nuova organizzazione. Deve avere lo stesso nome dell'ID progetto.runtimeType: imposta questo valore suCLOUD.billingType: specifica il tipo di fatturazione dell'organizzazione creata.controlPlaneEncryptionKeyName: è l'ID della chiave del control plane.apiConsumerDataLocation: Devi anche specificare una regione secondaria da utilizzare per le risorse interne. Consulta Regioni di residenza dei dati per i valori supportati.apiConsumerDataEncryptionKeyName: è l'ID della chiave della regione dei dati dei consumatori.authorizedNetwork: identifica la rete di peering che hai specificato in Configura il servizio di rete.runtimeDatabaseEncryptionKeyName: l'ID della chiave di crittografia dell'applicazione che hai creato nel passaggio precedente. Ricorda che l'ID è strutturato come un percorso file. Ad esempio:
projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Dopo aver eseguito questo comando, Apigee avvia un'operazione a lunga esecuzione, il cui completamento può richiedere alcuni minuti.
Se ricevi un errore, controlla l'utilizzo delle virgolette intorno ai valori delle variabili nel payload dei dati. Assicurati di avere virgolette doppie-singole-doppie intorno alla variabile $PROJECT_ID, come mostrato nell'esempio seguente:
"'"$PROJECT_ID"'"
Se utilizzi stringhe semplici (non variabili di ambiente) per i valori delle richieste, puoi racchiuderle tra virgolette doppie all'interno della stringa di payload tra virgolette singole, come mostrato nell'esempio seguente:
'{ "name":"my-gcp-project", ... }' - Attendi qualche minuto.
- Per controllare lo stato della richiesta di creazione, puoi inviare una richiesta
GETall'API List organizations di Apigee, come mostrato nell'esempio seguente:Nessuna residenza dei dati
curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"
Residenza dei dati
curl -H "Authorization: Bearer $AUTH" "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"
Se visualizzi questa risposta, la creazione dell'organizzazione non è ancora stata completata:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)", "status": "PERMISSION_DENIED" } }Se Apigee ha creato correttamente una nuova organizzazione, riceverai una risposta simile alla seguente:
Nessuna residenza dei dati
{ "name": "my-cloud-project", "createdAt": "1592586495539", "lastModifiedAt": "1592586495539", "environments": [], "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "us-west1", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "YOUR_CERTIFICATE", "authorizedNetwork": "my-network", "projectId": "my-cloud-project" }Residenza dei dati
{ "name": "my-cloud-project", "createdAt": "1681412783749", "lastModifiedAt": "1681412783749", "environments": [ "test-env" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "authorizedNetwork": "default", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "YOUR_CERTIFICATE", "runtimeDatabaseEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "projectId": "my-cloud-project", "state": "ACTIVE", "billingType": "PAYG", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {}, "connectorsPlatformConfig": {} }, "apiConsumerDataEncryptionKeyName": "projects/my-cloud-project/locations/us-central1/keyRings/my-key-ring/cryptoKeys/my-key-name", "controlPlaneEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "apiConsumerDataLocation": "us-central1", "apigeeProjectId": "i0c2a37e80f9850ab-tp" }Se Apigee restituisce una risposta di errore HTTP, consulta Creazione di un'organizzazione Apigee.
Esegui i passaggi indicati di seguito per creare una chiave automatizzata e una chiave di crittografia del control plane.
Vedi anche: Risoluzione dei problemi relativi a CMEK.