Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
Questo esempio mostra come utilizzare Apigee Adapter for Envoy installando ed eseguendo Envoy in locale, non all'interno di un cluster Kubernetes. Puoi seguire l'esempio in questo documento per le installazioni ibride di Apigee e Apigee.
Le chiamate proxy API passano attraverso Envoy in esecuzione come applicazione nativa. Apigee fornisce servizi di gestione delle API, ad esempio la creazione di app per sviluppatori e prodotti API. Envoy comunica con il piano di gestione Apigee tramite il servizio remoto dell'adattatore. L'adattatore esegue anche il push dei dati di analisi ad Apigee, dove puoi visualizzarli in Apigee Analytics.
Prerequisiti
Prima di iniziare: |
---|
|
|
|
Controlla la configurazione di gcloud
- Verifica che la configurazione di
gcloud
sia impostata sul progetto Google Cloud associato alla tua organizzazione Apigee.Per visualizzare l'elenco delle impostazioni attuali. Vedi anche gcloud config.
gcloud config list
Se necessario, imposta l'ID progetto Google Cloud corretto con questo comando:
gcloud config set project project-id
- Per il tuo progetto Google Cloud, devi eseguire l'autenticazione con Google Cloud SDK (gcloud). Vedi anche gcloud auth login.
gcloud auth login
Esegui il provisioning di Apigee
In questo passaggio, utilizzerai l'interfaccia a riga di comando del servizio remoto per eseguire il provisioning degli asset Apigee per Envoy in Apigee. Il comando di provisioning esegue il deployment dei proxy API utilizzati per le operazioni dell'adattatore Apigee, configura un certificato su Apigee e genera le credenziali che il servizio remoto utilizzerà per connettersi in modo sicuro dal tuo sistema ad Apigee.
- Vai alla directory
$CLI_HOME
:cd $CLI_HOME
- (Facoltativo) Per impostazione predefinita, l'adattatore cerca le credenziali dell'account di servizio predefinite nel tuo progetto Google Cloud per ottenere l'autorizzazione a inviare dati di analisi ad Apigee. Se non vuoi utilizzare le credenziali predefinite dell'account di servizio, puoi creare un account di servizio e fare riferimento alla chiave nel comando di provisioning. L'account di servizio deve avere il ruolo
apigee.analyticsAgent
. Per le istruzioni, vedi Creazione e gestione degli account di servizio. - Crea le seguenti variabili di ambiente. Queste variabili verranno utilizzate come parametri per lo script di provisioning:
export ORG=organization_name
export ENV=environment_name
export RUNTIME=host_alias_url
export NAMESPACE=hybrid_runtime_namespace
## Apigee hybrid onlyexport AX_SERVICE_ACCOUNT=analytics_service_account
## OptionalDove:
Variabile Descrizione organization_name Il nome della tua organizzazione Apigee. environment_name Il nome di un ambiente della tua organizzazione. host_alias_url - Per Apigee hybrid, un URL che include
hostAlias
per un host virtuale definito nella configurazione ibrida. - Per Apigee, un nome host del gruppo di ambienti che include l'ambiente. Puoi trovare i gruppi di ambienti nella UI di Apigee in Amministrazione > Ambienti > Gruppi.
Nota: l'URL deve iniziare con
https://
. Ad esempio:https://apitest.mydomain.net
hybrid_runtime_namepace (Solo Apigee ibrido) Lo spazio dei nomi in cui viene eseguito il deployment dei componenti di runtime ibridi. Nota: lo spazio dei nomi predefinito per un deployment ibrido è
apigee
.analytics_service_account (Facoltativo) Percorso di un file JSON della chiave dell'account di servizio Google Cloud con ruolo Apigee Analytics Agent
. Per una descrizione dettagliata di questo parametro, consulta Esegui il provisioning del comando. - Per Apigee hybrid, un URL che include
- Se non sei un proprietario del progetto Google Cloud associato all'organizzazione Apigee, assicurati che il tuo account utente Google Cloud includa il ruolo Amministratore organizzazione Apigee o entrambi i ruoli Creatore API e Deployment. Vedi Concessione, modifica e revoca dell'accesso alle risorse.
- Richiedi un token di accesso:
TOKEN=$(gcloud auth print-access-token);echo $TOKEN
- Esegui il provisioning del proxy del servizio remoto su Apigee. L'output del comando viene reindirizzato a un file di configurazione che utilizzerai in un passaggio successivo.
Se non esegui l'upgrade, utilizza questo comando per eseguire il provisioning di Apigee. Se esegui il provisioning su Apigee hybrid, assicurati di aggiungere il parametro
--namespace $NAMESPACE
:./apigee-remote-service-cli provision --organization $ORG --environment $ENV \ --runtime $RUNTIME --analytics-sa $AX_SERVICE_ACCOUNT --token $TOKEN > config.yaml
Se esegui l'upgrade, utilizza questo comando con il flag
--force-proxy-install
per eseguire il provisioning di Apigee. Se esegui il provisioning su Apigee hybrid, assicurati di aggiungere il parametro--namespace $NAMESPACE
:./apigee-remote-service-cli provision --force-proxy-install --organization $ORG --environment $ENV \ --runtime $RUNTIME --analytics-sa $AX_SERVICE_ACCOUNT --token $TOKEN > config.yaml
- Controlla i contenuti del file
config.yaml
. Dovrebbe avere un aspetto simile al seguente:# Configuration for apigee-remote-service-envoy (platform: Google Cloud) # generated by apigee-remote-service-cli provision on 2020-11-20 02:49:28 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: remote_service_api: https://apitest.mydomain.com/remote-service org_name: my-org env_name: test analytics: collection_interval: 10s auth: jwt_provider_key: https://apitest.mydomain.com/remote-service/token --- apiVersion: v1 kind: Secret metadata: name: my-org-new-test-policy-secret namespace: apigee type: Opaque data: remote-service.crt: eyJrZXlzIjpbeyJrdHkiOiJSU0EiLCJhbGci... remote-service.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURS... remote-service.properties: a2lkPTIwMjAtMDctMDZ... --- apiVersion: v1 kind: Secret metadata: name: my-org-new-test-analytics-secret namespace: apigee type: Opaque data: client_secret.json: ewogICJ0eXBlIjogInNlcnZ... --- apiVersion: v1 kind: ServiceAccount metadata: name: apigee-remote-service-envoy namespace: apigee
Esegui apigee-remote-service-envoy
Puoi eseguire il servizio remoto come programma binario nativo o su Docker.
Esegui il servizio in modo nativo
Esegui il programma binario del servizio con il file di configurazione generato dal comando di provisioning:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
esegui il servizio su Docker
Le immagini Docker vengono pubblicate con tag di release. Per questa installazione, utilizza la versione più recente. Puoi scegliere tra tre varianti di immagini:
Variante | Immagine |
---|---|
Google distroless | google/apigee-envoy-adapter:v2.0.3 |
Ubuntu | google/apigee-envoy-adapter:v2.0.3-ubuntu |
Ubuntu con crittografia noiosa | google/apigee-envoy-adapter:v2.0.3-boring |
Ad esempio, per eseguire l'immagine scratchpad con il tuo config.yaml
locale disponibile come /config.yaml
tramite il montaggio del volume, utilizza questo comando:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.3
Creare un file di configurazione Envoy di esempio
Genera un file di configurazione Envoy di esempio utilizzando l'interfaccia a riga di comando:
- Assicurati di essere nella directory
$ENVOY_HOME
. - Elenca i modelli di configurazione disponibili:
$CLI_HOME/apigee-remote-service-cli samples templates
Esegui il comando sample. Per TEMPLATE, sostituisci uno dei modelli Envoy supportati:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
Il comando crea il file
./samples/envoy-config.yaml
.
Per saperne di più, consulta la sezione Comando Samples.
Installa ed esegui il proxy Envoy
Per installare ed eseguire il proxy Envoy:
- Scarica un file binario Envoy o crealo.
- Esegui Envoy utilizzando un file di configurazione di esempio generato in precedenza per il servizio
httpbin.org
:envoy -c ./samples/envoy-config.yaml
Testa l'installazione
- Configura un prodotto API e ottieni una chiave API come spiegato in Come ottenere una chiave API.
- Chiama il servizio
httpbin
senza una chiave API:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
Il servizio è ora gestito da Apigee e, poiché non hai fornito una chiave API, la chiamata restituisce il seguente errore.
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11
- Effettua una chiamata API utilizzando la chiave:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"
La chiamata dovrebbe avere esito positivo con stato 200 e restituire un elenco di intestazioni nella risposta. Ad esempio:
curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@mydomain.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
Disinstalla l'adattatore Apigee Envoy
Per rimuovere l'installazione di un adattatore Envoy Apigee:
- Se hai scelto di eseguire l'adattatore envoy (in modo nativo o su Docker), rimuovilo.
- Elimina i proxy remote-service e remote-token dagli ambienti Apigee. Vedi Eliminazione di un proxy API.
- Rimuovi eventuali operations o prodotti API inutilizzati utilizzati dai casi d'uso dell'adattatore Envoy. Vedi Eliminazione di un prodotto API.
Passaggi successivi
Il traffico API verso il servizio httpbin
è ora gestito da Apigee. Ecco alcune funzionalità che puoi esplorare e provare:
- Accedi alle analisi di Apigee nell'interfaccia utente Edge. Vai ad Analizza > Metriche API > Prestazioni proxy API.
- Esplora le opzioni dell'interfaccia a riga di comando in Riferimento.