Questo documento descrive come installare e configurare Apigee dalla riga di comando
con il peering VPC. Questi passaggi si applicano ai modelli di prezzi sia di abbonamento che di pagamento a consumo per le organizzazioni a pagamento con o senza residenza dei dati abilitata.
Riepilogo dei passaggi
I passaggi per il provisioning sono i seguenti:
Passaggio 1: definisci le variabili di ambiente:
configura gcloud e 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 Google Cloud.
Passaggio 4: configura il networking di servizi: il networking di servizi 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 (talvolta denominata organizzazione) è il container di primo livello in Apigee. Include tutti i tuoi ambienti e gruppi di ambienti, utenti, proxy API e risorse correlate.
Passaggio 6: crea un'istanza di runtime: un'istanza o un runtime è la posizione in cui sono archiviati il progetto e i relativi servizi, che fornisce l'endpoint rivolto agli utenti per i servizi.
Passaggio 7: crea un ambiente: prima che le API esposte siano accessibili sulla rete, è necessario eseguire il deployment di un proxy API in un ambiente e poi aggiungerlo a un gruppo di ambienti.
Inizializza Cloud SDK come descritto in Inizializzazione di gcloud CLI oppure assicurati che il progetto Google Cloud creato in Prerequisiti sia il progetto predefinito per gcloud.
Definisci le seguenti variabili di ambiente nel terminale di comando.
Seleziona la scheda corrispondente al tipo di organizzazione di cui hai bisogno:
Nessuna residenza dei dati o
Residenza dei dati:
AUTH definisce l'intestazione Authentication con un token di connessione.
Utilizzerai questa intestazione quando chiami le API Apigee. Tieni presente che il token scade dopo un determinato periodo di tempo e quando scade, puoi semplicemente rigenerarlo utilizzando lo stesso comando. Per saperne di più, consulta la pagina di riferimento per il
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 seguito. Per un elenco delle località di runtime disponibili, consulta le località di Apigee.
ANALYTICS_REGION è la località fisica in cui verranno archiviati
i dati di analisi Apigee. Per un elenco delle regioni di analisi delle API Apigee disponibili, consulta le località di Apigee.
Sia RUNTIME_LOCATION e ANALYTICS_REGION
possono essere la stessa regione, ma non devono necessariamente essere uguali.
BILLING_TYPE è il tipo di fatturazione per l'organizzazione che crei. I valori validi sono:
AUTH definisce l'intestazione Authentication con un token di connessione.
Utilizzerai questa intestazione quando chiami le API Apigee. Tieni presente che il token scade dopo un determinato periodo di tempo e quando scade, puoi semplicemente rigenerarlo utilizzando lo stesso comando. Per saperne di più, consulta la pagina di riferimento per il
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 seguito. Per un elenco delle località di runtime disponibili, consulta le località di Apigee.
La località del runtime deve trovarsi all'interno della località del piano di controllo.
CONTROL_PLANE_LOCATION è la località fisica in cui verranno archiviati i dati del piano di controllo Apigee.
Per un elenco delle località del piano di controllo disponibili, consulta le località di Apigee.
CONSUMER_DATA_REGION è una sottoregione della regione del piano di controllo. Devi specificare sia CONTROL_PLANE_LOCATION che CONSUMER_DATA_REGION.
Per un elenco delle regioni di dati dei consumatori disponibili, consulta le località di Apigee.
BILLING_TYPE è il tipo di fatturazione per l'organizzazione che crei. I valori validi sono:
SUBSCRIPTION per le organizzazioni che richiedono abbonamenti.
(Facoltativo) Controlla il tuo lavoro facendo eco ai valori appena impostati. Tieni presente che quando vuoi utilizzare una variabile nei comandi, anteponi il simbolo del dollaro ($ al nome della variabile).
Le risposte ai comandi echo dovrebbero avere il seguente aspetto:
YOUR_TOKEN
my-cloud-project
1234567890
us-west1
us
us-west1
SUBSCRIPTION
Passaggio 2: attivazione delle API
Autorizzazioni richieste per questa attività
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario. Consulta i
ruoli predefiniti e le
autorizzazioni di abilitazione delle API.
Apigee richiede l'abilitazione di diverse API Google Cloud. Abilitale eseguendo questo comando services enable:
Verifica che l'agente sia stato creato correttamente. La risposta dovrebbe 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 allocarai una coppia di intervalli di indirizzi IP (un intervallo CIDR /22 e /28) ad Apigee ed eseguirai il peering VPC tra la tua rete e la rete di Apigee. Ogni istanza di Apigee richiede un intervallo CIDR non sovrapposto di /22 e /28. Al piano di runtime Apigee sono assegnati indirizzi IP all'interno di questo intervallo CIDR. Di conseguenza, è importante che l'intervallo sia riservato per Apigee e non utilizzato da altre applicazioni nella tua rete VPC. Per ulteriori informazioni e considerazioni importanti, consulta la pagina Informazioni sugli intervalli di peering.
Tieni presente che stai creando un intervallo IP di rete sufficiente per un'istanza Apigee. Se prevedi di creare istanze Apigee aggiuntive, devi ripetere questo passaggio per ciascuna. Gli intervalli non possono essere condivisi tra le istanze. Vedi anche Espansione di Apigee in più regioni.
Autorizzazioni richieste per questa attività
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario. Consulta i
ruoli predefiniti e le
Autorizzazioni di networking dei servizi.
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 prenotati gli indirizzi.
Google crea una rete predefinita
(denominata default) per ogni nuovo progetto, che puoi utilizzare. Tuttavia, Google sconsiglia di utilizzare la rete predefinita per scopi diversi dai test.
Crea un intervallo IP di rete con una lunghezza CIDR di /22:
Dove --addresses consente di specificare facoltativamente un
intervallo di indirizzi. Ad esempio, per allocare il blocco CIDR
192.168.0.0/22, specifica 192.168.0.0 per
l'indirizzo e 22 per la lunghezza del prefisso. Vedi anche
Creare un'allocazione di IP.
Se non fornisci il parametro --addresses, gcloud seleziona un intervallo di indirizzi disponibile per te.
Se l'operazione riesce, gcloud risponde 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, gli indirizzi vengono associati al progetto finché non li rilasci.
Verifica che l'intervallo IP di rete sia stato creato con una lunghezza CIDR di /22:
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.
Dove --addresses consente di specificare facoltativamente un
intervallo di indirizzi. Ad esempio, per allocare il blocco CIDR
192.168.0.0/28, specifica 192.168.0.0 per
l'indirizzo e 28 per la lunghezza del prefisso. Vedi anche
Creare un'allocazione di 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:
Apigee crea una connessione tra la tua rete e i servizi di Google. In particolare, Apigee collega il tuo progetto all'API Service Networking tramite peering VPC. Apigee anche associa gli indirizzi IP al progetto.
Dopo alcuni minuti, verifica se il peering VPC è riuscito:
gcloud services vpc-peerings list \
--network=$NETWORK_NAME \
--service=servicenetworking.googleapis.com \
--project=$PROJECT_ID
Passaggio 5: crea un'organizzazione
Autorizzazioni richieste per questa attività
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario. Vedi:
Prima di poter creare un'organizzazione, devi creare una chiave e un keyring di crittografia del database di runtime (vedi il passaggio 1) e, se utilizzi la
situazione dei dati, i keyring e le chiavi di crittografia del piano di controllo (vedi passaggio 2). Queste chiavi
Cloud KMS criptano i dati archiviati e replicati nelle località del runtime e del piano di controllo. Apigee utilizza queste entità per criptare i dati delle applicazioni, come KVM, cache e client secret, che vengono poi archiviati nel database. Per maggiori informazioni, consulta
Informazioni sulle chiavi di crittografia Apigee.
Crea una chiave e un keyring di crittografia del database di runtime.
Definisci una variabile di ambiente per la località della chiave e dell'anello di crittografia del database di runtime. Questo contribuisce a garantire coerenza quando li crei e
semplifica il monitoraggio della documentazione.
Il valore è la località fisica in cui sono archiviati il keyring e la chiave di crittografia del database di runtime.
Regione singola
Configurazioni a regione singola (in cui hai una sola istanza in un'unica regione): scegli tra le località regionali KMS supportate.
Ad esempio:
RUNTIMEDBKEY_LOCATION="us-west1"
Il valore può essere uguale a $RUNTIME_LOCATION (anche una regione), ma non deve esserlo. Tuttavia, se i due sono uguali, le prestazioni potrebbero essere
vantaggiose.
Se hai una configurazione per più regioni negli Stati Uniti, ti consigliamo di utilizzare
us per la tua località, se possibile. In caso contrario, utilizza nam4.
Definisci le variabili di ambiente per i keyring e i nomi delle chiavi del database.
Il nome del keyring deve essere univoco per la tua organizzazione. Se crei una seconda regione o una regione successiva, il nome non può essere uguale a quello degli altri keyring.
(Facoltativo) Controlla il tuo lavoro facendo eco ai valori appena impostati. Ricorda che quando vuoi utilizzare una variabile nei comandi, anteponi il simbolo del dollaro ($ al nome della variabile).
Questo comando associa la chiave all'agente di servizio Apigee.
Una volta completata questa richiesta, gcloud risponde con qualcosa di simile a quanto segue:
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 messaggio di 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 dell'account di servizio.
Se utilizzi la
residenza dei dati, crea una chiave e un keyring di crittografia del piano di controllo. Se non utilizzi la residenza dei dati, vai al passaggio 3.
Segui questi passaggi per creare una chiave e un keyring di crittografia del piano di controllo.
Definisci una variabile di ambiente per la località dell'anello e della chiave di crittografia del database del piano di controllo:
CONTROL_PLANE_LOCATION è la località fisica in cui verranno archiviati i dati del piano di controllo Apigee.
Per un elenco delle località del piano di controllo disponibili, consulta le località di Apigee.
CONSUMER_DATA_REGION è una sottoregione della regione del piano di controllo. Devi specificare sia CONTROL_PLANE_LOCATION che CONSUMER_DATA_REGION.
Per un elenco delle regioni di dati dei consumatori disponibili, consulta le località di Apigee.
Definisci le variabili di ambiente per i keyring e i nomi delle chiavi del database del piano di controllo.
Il nome del keyring deve essere univoco per la tua organizzazione.
Questo comando associa la chiave all'agente di servizio Apigee. Una volta completata questa richiesta, gcloud risponde con qualcosa di simile a quanto segue:
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 messaggio di 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 dell'account di servizio.
runtimeDatabaseEncryptionKeyName: l'ID della chiave di crittografia dell'applicazione creata 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
-d definisce il payload dei dati per la richiesta. Questo payload deve includere quanto segue:
name: identifica la nuova organizzazione. Deve essere uguale al nome dell'ID progetto.
runtimeType: imposta questo valore su CLOUD.
billingType: specifica il tipo di fatturazione dell'organizzazione creata.
controlPlaneEncryptionKeyName: l'ID della chiave del piano di controllo.
apiConsumerDataLocation: devi anche specificare una sottoregione per l'utilizzo da parte delle risorse interne. Consulta
Regioni di residenza dei dati per i valori supportati.
apiConsumerDataEncryptionKeyName: è l'ID chiave della tua regione di dati consumer.
runtimeDatabaseEncryptionKeyName: l'ID della chiave di crittografia dell'applicazione creata 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 visualizzi un messaggio di errore, verifica l'utilizzo delle virgolette intorno ai valori della variabile nel payload dei dati. Assicurati di racchiudere la variabile $PROJECT_ID tra virgolette doppie singole, come illustrato nell'esempio seguente:
"'"$PROJECT_ID"'"
Se utilizzi stringhe semplici (non variabili di ambiente) per i valori delle richieste, puoi includerle tra virgolette doppie all'interno della stringa di payload con 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 GET all'API List APIs Apigee, come illustrato nell'esempio seguente:
Se viene visualizzata questa risposta, significa che 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:
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario. Consulta i
ruoli predefiniti e le
autorizzazioni delle istanze di runtime.
Un'istanza di runtime è la posizione in cui sono archiviati il progetto Apigee e i relativi servizi, che fornisce l'endpoint rivolto agli utenti per i servizi. Per creare una nuova istanza di runtime:
Verifica che Apigee abbia completato la creazione della tua organizzazione. Hai inviato una richiesta per creare una nuova organizzazione in Crea un'organizzazione Apigee, ma devi assicurarti che l'operazione sia completata prima di continuare.
Se l'organizzazione esiste (e disponi delle autorizzazioni appropriate per visualizzarla), Apigee
risponde fornendo i dettagli in merito. Se Apigee risponde con un errore, attendi un paio di minuti e invia di nuovo la richiesta.
Analogamente all'attività precedente in cui hai creato una chiave di crittografia per il database, ora devi creare una chiave
Cloud KMS utilizzata per criptare i dati sul lato server.
Per iniziare, definisci le seguenti variabili di ambiente:
INSTANCE_NAME: il nome della nuova istanza. Ad esempio,
my-runtime-instance. Il nome deve iniziare con una lettera minuscola, può avere una lunghezza massima di 32 caratteri e includere solo lettere minuscole, numeri e trattini. Non può iniziare o terminare con un trattino e deve avere una lunghezza di almeno due caratteri.
RUNTIME_LOCATION è il luogo fisico in cui è ospitato il cluster.
I valori validi sono qualsiasi località consentita da Compute Engine. (Vedi
Regioni e zone disponibili.) In questo esempio viene utilizzato
us-west1.
DISK_KEY_RING_NAME è il nome del keyring di crittografia del disco.
DISK_KEY_NAME è il nome della chiave di crittografia del disco.
consumerAcceptList (Facoltativo) Specifica un elenco di
ID progetto Google Cloud che possono connettersi in modo privato al
collegamento al servizio del VPC Apigee. Il collegamento al servizio è un'entità utilizzata con Google Cloud
Private Service Connect per consentire ai producer di servizi (in questo caso, Apigee) di
esporre i servizi ai consumer (in questo caso, uno o più progetti Cloud di tua proprietà).
Per impostazione predefinita, viene utilizzato il progetto Cloud già associato alla tua organizzazione Apigee. Ad esempio:
"consumerAcceptList": ["project1", "project2", "project3"]
Tieni presente che puoi anche impostare e modificare l'elenco dei progetti accettati nella UI dell'istanza. Per maggiori dettagli, consulta
Gestione delle istanze.
Il completamento di questa richiesta può richiedere fino a 20 minuti perché Apigee deve creare e avviare un nuovo cluster Kubernetes, installare le risorse Apigee su quel cluster e configurare il bilanciamento del carico.
Per controllare lo stato della richiesta di creazione dell'istanza di runtime, esegui questo comando. Quando lo stato è ATTIVO, puoi andare al passaggio successivo.
Nessuna residenza dei dati
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"
Residenza dei dati
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"
Passaggio 7: creazione di un ambiente
Autorizzazioni richieste per questa attività
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario. Vedi:
Per creare un ambiente e collegarlo al runtime dalla riga di comando:
Definisci le variabili di ambiente da utilizzare in questa sezione. Le variabili di ambiente specifiche che crei variano a seconda che tu stia creando un ambiente per un'organizzazione con abbonamento o pagamento a consumo.
Abbonamento
Per un ambiente di sottoscrizione, crea queste variabili:
ENVIRONMENT_NAME è un nome stringa. Ad esempio: test
ENVIRONMENT_TYPE è il
tipo di ambiente
per questo ambiente ed è applicabile solo agli utenti del Pay-as-you-go, che devono
specificare uno di questi valori: BASE, INTERMEDIATE o
COMPREHENSIVE. Gli altri utenti devono omettere il tipo di ambiente.
ENV_GROUP_NAME è un nome stringa. Ad esempio: test-group
ENV_GROUP_HOSTNAME è un nome host di dominio valido. Ad esempio: foo.example.com
Crea un nuovo ambiente con l'API Environments. I comandi specifici da utilizzare variano a seconda che tu stia creando un ambiente per un'organizzazione subscription o con pagamento a consumo.
Abbonamento
Per un nuovo ambiente di sottoscrizione, utilizza il comando seguente:
In questo passaggio configurerai il modo in cui le applicazioni client comunicano con Apigee. Il traffico dal client ad Apigee è anche chiamato traffico "northbound". Le opzioni di configurazione in direzione nord includono quanto segue.
Vai all'opzione di configurazione che vuoi utilizzare ed esegui i passaggi per l'opzione in questione:
Tipo di accesso
Descrizione del processo di configurazione e deployment
Utilizza un gruppo di istanze gestite per inviare il traffico API dal servizio di backend di un bilanciatore del carico globale ad Apigee. Con questa configurazione, Apigee è in grado di connettersi solo al VPC in peering. Questa configurazione consente di inviare richieste proxy API Apigee da qualsiasi macchina abilitata per la rete.
Consenti solo l'accesso interno ai proxy API da qualsiasi progetto Google Cloud utilizzando Private Service Connect (PSC).
PSC consente una connessione privata tra un
producer di servizi (Apigee) e un consumer di servizi (il progetto VPC in peering e/o uno o più altri progetti Cloud controllati da te). Con questo metodo, le richieste passano attraverso un endpoint di servizio o un bilanciatore del carico interno a livello di regione a un singolo punto di collegamento, chiamato collegamento al servizio.
Questa configurazione consente ai client interni di inviare richieste proxy API Apigee da qualsiasi macchina abilitata per la rete.
Utilizza Private Service Connect (PSC) per abilitare una connessione privata tra un producer di servizi (Apigee) e un consumer di servizi (il progetto VPC in peering e/o uno o più altri progetti Cloud controllati da te). Con questo metodo, le richieste passano attraverso un bilanciatore del carico esterno globale o un bilanciatore del carico esterno a livello di regione a un singolo punto di collegamento, chiamato collegamento al servizio.
Questa configurazione consente di inviare richieste proxy API Apigee da qualsiasi macchina abilitata per la rete.
Ognuno di questi approcci di routing è presentato nelle istruzioni seguenti.
Routing interno (VPC)
Per il routing del traffico dai client interni ad Apigee, puoi scegliere se utilizzare o meno la terminazione TLS:
Opzioni TLS: hai a disposizione due opzioni se vuoi effettuare chiamate proxy API da client interni con TLS abilitato:
(Opzione 1) Configura un bilanciatore del carico interno (ILB):
Crea un gruppo di istanze gestite nel progetto. Per creare il gruppo di istanze gestite, segui i passaggi 8a, 8b e 8c nella scheda Routing esterno (MIG).
(Opzione 2) Utilizza il nome di dominio completo predefinito e l'IP del bilanciatore del carico interno dell'istanza Apigee. Questo caso è consigliato solo a scopo di test e non per un ambiente di produzione. In questo caso, vengono utilizzati i certificati autofirmati creati da Apigee con il bilanciatore del carico interno di Apigee e non puoi modificarli. Vedi
Chiamata a un proxy API con accesso solo interno.
Opzione non TLS: se non devi attivare la terminazione TLS, puoi chiamare i proxy API in cui il client disabilita TLS. Ad esempio, utilizzando l'opzione -k con cURL, puoi disattivare TLS. Vedi
Chiamata a un proxy API con accesso solo interno.
Routing esterno (MIG)
Questa sezione descrive come configurare il routing per consentire l'accesso esterno ai proxy API utilizzando un gruppo di istanze gestite (MIG) per inviare il traffico API dal servizio di backend di un bilanciatore del carico globale ad Apigee. Devi eseguire questa operazione prima di poter inviare una richiesta da un client esterno alla tua istanza di runtime Apigee.
Autorizzazioni richieste per questa attività
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario.
Consulta Ruoli predefiniti e Autorizzazioni di routing degli accessi.
Le istruzioni in questa sezione utilizzano le variabili di ambiente per fare riferimento alle stringhe utilizzate più volte. Ti consigliamo di impostare i seguenti valori prima di continuare:
MIG_NAME=apigee-mig-MIG_NAME # You can choose a different name if you like
VPC_NAME=default # If you are using a shared VPC, use the shared VPC nameVPC_SUBNET=default # Private Google Access must be enabled for this subnetREGION=RUNTIME_REGION # The same region as your Apigee runtime instanceAPIGEE_ENDPOINT=APIGEE_INSTANCE_IP # See the tip below for details on getting this IP address value
Utilizzerai queste variabili più volte durante i restanti processi. Se vuoi configurare più regioni, crea variabili con valori specifici per ogni regione.
Passaggio 8c: crea un gruppo di istanze gestite
In questo passaggio, creerai e configurerai un gruppo di istanze gestite. In un passaggio successivo, aggiungerai il gruppo di istanze gestite a un servizio di backend collegato a un bilanciatore del carico globale. È necessario un gruppo di istanze gestite per inviare il traffico API dal servizio di backend del bilanciatore del carico globale ad Apigee.
Come puoi vedere da questo comando, le macchine sono di tipo e2-medium. Eseguono Debian 10 e hanno 20 GB di disco. Lo script startup-script.sh configura il gruppo di istanze gestite in modo da instradare il traffico in entrata dal bilanciatore del carico all'istanza Apigee.
Passaggio 8d: crea un certificato e una chiave SSL per il bilanciatore del carico
Devi creare le credenziali una sola volta, indipendentemente dal fatto che tu stia eseguendo l'installazione in una o più regioni. In un passaggio successivo, assocerai queste credenziali al proxy HTTPS di destinazione del bilanciatore del carico.
Puoi creare le credenziali con:
Il tuo certificato rilasciato da un'autorità di certificazione
Per maggiori informazioni sulla creazione e sull'utilizzo dei certificati SSL per il bilanciatore del carico Google Cloud, consulta i certificati SSL e la panoramica dei certificati SSL.
Nel seguente esempio, viene creato un certificato SSL gestito da Google:
Imposta DOMAIN_HOSTNAME su un nome host di dominio valido che hai registrato. In un passaggio successivo, otterrai l'indirizzo IP del bilanciatore del carico e aggiornerai il record A del dominio in modo che punti a quell'indirizzo. Ad esempio, un nome host di dominio
potrebbe avere il seguente aspetto: foo.example.com.
Utilizzerai questo controllo di integrità per assicurarti che il servizio di backend sia in esecuzione. Per
configurare controlli di integrità più avanzati su un proxy specifico, consulta
Esecuzione dei controlli di integrità.
Passaggio 8f: ottieni un indirizzo IP riservato e crea le regole firewall
Devi assegnare un indirizzo IP al bilanciatore del carico, quindi creare regole che consentano al bilanciatore del carico di accedere al gruppo di istanze gestite. Devi eseguire questo passaggio una sola volta, indipendentemente dal fatto che tu stia installando una o più regioni.
Passaggio importante : vai al sito, all'host DNS o all'ISP dove sono gestiti i record DNS e assicurati che il record DNS del tuo dominio venga risolto nell'indirizzo IP del bilanciatore del carico Google Cloud. Questo indirizzo è il valore IP restituito nell'ultimo passaggio. Per maggiori dettagli, consulta la pagina relativa all'
aggiornamento dei record DNS A e AAAA in modo che puntino all'indirizzo IP del bilanciatore del carico.
Crea una regola firewall che consenta al bilanciatore del carico di accedere al gruppo di istanze gestite utilizzando questo
comando:
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \
--project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \
--source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy
Tieni presente che gli intervalli di indirizzi IP 130.211.0.0/22 e 35.191.0.0/16 sono gli intervalli di indirizzi IP di origine per Google Load Balancing. Questa regola firewall consente a Google Cloud Load Balancing di effettuare richieste di controllo di integrità al gruppo di istanze gestite.
Questa sezione spiega come consentire solo l'accesso interno ai proxy API da qualsiasi progetto Google Cloud utilizzando Private Service Connect (PSC).
Per configurare l'accesso interno con PSC hai due opzioni:
Endpoint di servizio: le richieste passano attraverso un endpoint di servizio a un singolo punto di collegamento, chiamato collegamento al servizio.
Bilanciatore del carico HTTP(S) interno a livello di regione: le richieste passano attraverso un bilanciatore del carico HTTP(S) interno a livello di regione. Vedi anche
Bilanciamento del carico globale e a livello di regione.
Seleziona la scheda seguente per la scelta della configurazione e segui i passaggi:
Endpoint di servizio
Autorizzazioni richieste per questa attività
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario.
Consulta Ruoli predefiniti e Autorizzazioni di routing degli accessi.
Crea un endpoint di servizio PSC per il collegamento al servizio
Recupera il collegamento al servizio dall'istanza che hai creato in precedenza:
Nessuna residenza dei dati
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Residenza dei dati
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Nel seguente output di esempio, il valore serviceAttachment
è visualizzato in grassetto:
Crea un endpoint di servizio PSC che punta al collegamento al servizio ottenuto dal corpo della risposta dell'istanza nel passaggio precedente, come spiegato in Creare un endpoint Private Service Connect.
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario.
Consulta Ruoli predefiniti e Autorizzazioni di routing.
Passaggio 8a: configura le variabili di ambiente
Le istruzioni in questa sezione utilizzano le variabili di ambiente per fare riferimento alle stringhe utilizzate più volte. Assicurati di aver impostato le variabili in Definisci le variabili di ambiente.
Inoltre, imposta le seguenti variabili di ambiente:
NEG_NAME: un nome per il gruppo di endpoint di rete.
TARGET_SERVICE: il collegamento al servizio a cui vuoi connetterti. Ad esempio: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
NETWORK_NAME: (facoltativo) nome della rete in cui viene creato il NEG. Se ometti questo parametro, viene utilizzata la rete del progetto default.
SUBNET_NAME: nome della subnet utilizzata per la connettività privata al producer.
Le dimensioni della subnet possono essere ridotte: il NEG PSC richiede solo un IP dalla subnet.
Per Apigee, è necessario un solo NEG PSC per regione. La subnet può essere condivisa e utilizzata da VM o
altre entità.
Se non viene specificata una subnet, gli endpoint di rete possono appartenere a qualsiasi subnet nella regione in cui è stato creato il gruppo di endpoint di rete.
Dove $PROJECT_ID può essere il progetto Cloud già associato alla tua organizzazione Apigee o un progetto Cloud incluso in consumerAcceptlist al momento della creazione dell'istanza di runtime Apigee.
Passaggio 8d: configura il bilanciatore del carico interno a livello di regione
Prenotare un indirizzo IPv4 interno per il bilanciatore del carico.
BACKEND_SERVICE_NAME con il nome del servizio di backend.
Per creare un bilanciatore del carico HTTPS, devi disporre di una risorsa del certificato SSL da utilizzare nel proxy di destinazione HTTPS.
Utilizza questo comando per creare una risorsa del certificato SSL autogestito. Per creare un certificato SSL autogestito, sono necessari un file di chiave privata locale e un file di certificato locale. Se devi creare questi file, consulta il passaggio 1 relativo all'utilizzo dei certificati SSL autogestiti.
DEFAULT_BACKEND_SERVICE_NAME: il nome del servizio di backend predefinito del bilanciatore del carico.
Il valore predefinito viene utilizzato quando nessuna regola host corrisponde al nome host richiesto.
Utilizza la risorsa del certificato SSL per creare un proxy HTTPS di destinazione.
Questa sezione descrive come configurare il routing esterno utilizzando
Private Service Connect (PSC) per
consentire la comunicazione tra Apigee e VPC controllati da te. Devi eseguire questa operazione prima di poter inviare una richiesta da un client esterno alla tua istanza di runtime Apigee.
Autorizzazioni richieste per questa attività
Puoi assegnare al provisioner Apigee un ruolo predefinito che include le autorizzazioni necessarie per completare questa attività oppure concedere autorizzazioni più granulari per fornire il privilegio minimo necessario.
Consulta Ruoli predefiniti e Autorizzazioni di routing degli accessi.
Passaggio 8b: crea un NEG e configura il bilanciatore del carico
Puoi creare un bilanciatore del carico globale o a livello di regione.
Sebbene il NEG Private Service Connect sia a livello di regione, tutti gli altri componenti di bilanciamento del carico in questa configurazione sono globali.
NEG_NAME: un nome per il gruppo di endpoint di rete.
TARGET_SERVICE: il collegamento al servizio a cui vuoi connetterti. Utilizza il valore di collegamento al servizio restituito dal comando precedente. Ad esempio:
projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
NETWORK_NAME: (facoltativo) nome della rete in cui viene creato il NEG. Se ometti questo parametro, viene utilizzata la rete del progetto default.
SUBNET_NAME: nome della subnet utilizzata per la connettività privata al producer.
Le dimensioni della subnet possono essere ridotte: il NEG PSC richiede solo un IP dalla subnet.
Per Apigee, è necessario un solo NEG PSC per regione. La subnet può essere condivisa e utilizzata da VM o
altre entità.
Se non viene specificata una subnet, gli endpoint di rete possono appartenere a qualsiasi subnet nella regione in cui viene creato il gruppo di endpoint di rete.
$PROJECT_ID Il progetto Cloud già associato alla tua organizzazione Apigee o un progetto Cloud incluso in consumerAcceptlist al momento della creazione dell'istanza di runtime Apigee.
Se non l'hai ancora fatto, crea una variabile di ambiente che contenga l'ID progetto, perché viene utilizzata nella maggior parte dei comandi seguenti.
Prenotare un indirizzo IPv4 esterno globale per il bilanciatore del carico.
DEFAULT_BACKEND_SERVICE_NAME: il nome del servizio di backend predefinito del bilanciatore del carico.
Il valore predefinito viene utilizzato quando nessuna regola host corrisponde al nome host richiesto.
Crea il proxy HTTPS di destinazione.
Per creare un bilanciatore del carico HTTPS, devi disporre di una risorsa del certificato SSL da utilizzare nel proxy di destinazione HTTPS. Puoi creare una risorsa del certificato SSL utilizzando un certificato SSL gestito da Google o un certificato SSL autogestito. È consigliabile utilizzare certificati gestiti da Google perché Google Cloud li ottiene, gestisce e rinnova automaticamente questi certificati.
DOMAIN: nome di dominio del bilanciatore del carico.
Utilizza questo comando per creare una risorsa del certificato SSL autogestito. Per creare un certificato SSL autogestito, sono necessari un file di chiave privata locale e un file di certificato locale. Se devi creare questi file, consulta il passaggio 1 relativo all'utilizzo dei certificati SSL autogestiti.
(Facoltativo) NETWORK_NAME: nome della rete in cui viene creata la subnet. Se ometti questo parametro, viene utilizzata la rete del progetto predefinita.
Recupera il collegamento al servizio dall'istanza che hai creato in precedenza:
Nessuna residenza dei dati
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Residenza dei dati
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Nel seguente output di esempio, il valore serviceAttachment viene mostrato in grassetto:
TARGET_SERVICE: il nome del collegamento al servizio a cui vuoi connetterti.
Ad esempio: projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
DEFAULT_BACKEND_SERVICE_NAME: il nome del servizio di backend predefinito del bilanciatore del carico.
Il valore predefinito viene utilizzato quando nessuna regola host corrisponde al nome host richiesto.
Crea il proxy HTTPS di destinazione.
Per creare un bilanciatore del carico HTTPS, devi disporre di una risorsa del certificato SSL da utilizzare nel proxy di destinazione HTTPS.
Utilizza questo comando per creare una risorsa del certificato SSL autogestito. Per creare un certificato SSL autogestito, sono necessari un file di chiave privata locale e un file di certificato locale. Se devi creare questi file, consulta il passaggio 1 relativo all'utilizzo dei certificati SSL autogestiti.
PROXY_NAME: un nome per il proxy HTTPS di destinazione.
URL_MAP_NAME: il nome della mappa URL.
CERTIFICATE: il nome della risorsa di certificato.
Prenotare un indirizzo esterno a livello di regione per il bilanciatore del carico. Tieni presente che il livello di rete deve essere impostato su STANDARD.
La creazione e il deployment dei proxy richiede un insieme minimo di autorizzazioni. Se hai il ruolo di amministratore organizzazione Apigee, puoi completare questa attività. Per saperne di più sugli altri ruoli che puoi utilizzare, consulta
Ruoli Apigee.
Scarica il
proxy di esempio da GitHub. La destinazione del proxy è il servizio httpbin.org, che è un servizio di richiesta e risposta di uso comune.
Carica il bundle proxy API nel runtime utilizzando l'API Apigee
apis:
Se viene visualizzato un errore simile al seguente: CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure, verifica che sia stato eseguito il provisioning del certificato SSL creato in precedenza.
Utilizza questo comando per verificare lo
stato del provisioning. Una volta eseguito il provisioning del certificato, il suo stato è ACTIVE.
Per saperne di più sul deployment dei proxy, incluse informazioni aggiuntive per la risoluzione dei problemi, consulta
Eseguire il deployment di un proxy API.