Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
Questo esempio mostra come utilizzare Apigee Adapter for Envoy con Apigee Edge.
Prerequisiti
Prima di iniziare: |
---|
|
Panoramica
Questo esempio spiega come utilizzare Apigee Adapter for Envoy con Apigee Edge per il cloud pubblico. Le chiamate proxy API passano attraverso Envoy in esecuzione come applicazione nativa con Edge, che fornisce servizi di gestione delle API tramite Apigee Remote Service for Envoy.
Esegui il provisioning di Apigee Edge
In questo passaggio utilizzerai l'interfaccia a riga di comando del servizio remoto per eseguire il provisioning degli asset Apigee Adapter for Envoy in Apigee Edge. Il comando di provisioning esegue il deployment di un proxy API su Apigee Edge, 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
- 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 USER=your_apigee_username
export PASSWORD=your_apigee_password
Dove:
Variabile Descrizione organization_name Il nome della tua organizzazione Apigee. environment_name Il nome di un ambiente della tua organizzazione. your_apigee_username Il nome utente del tuo account Apigee. In genere il nome utente è un indirizzo email. your_apigee_password La tua password Apigee. - Esegui questo comando per eseguire il provisioning del proxy di servizio remoto su Apigee Edge:
Se non esegui l'upgrade, utilizza questo comando per eseguire il provisioning di Apigee:
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
Se esegui l'upgrade, utilizza questo comando con il flag
--force-proxy-install
per eseguire il provisioning di Apigee:$CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
- Verifica i contenuti del file
config.yaml
. Dovrebbe avere un aspetto simile al seguente:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75 ...
I valori della chiave e del secret vengono utilizzati per convalidare le richieste dal proxy di servizio remoto ad Apigee Edge.
Esegui il servizio Apigee Remote Service for 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 i tag di release. Per questa installazione, utilizza la versione più recente. Puoi scegliere fra tre varianti di immagini:
Variazione | Immagine |
---|---|
Google distroless | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
Ubuntu con Boring Crypto | google/apigee-envoy-adapter:v2.0.0-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.0
Creare file di configurazione di esempio
Genera un file di configurazione Envoy 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 maggiori informazioni, consulta la sezione Comando Samples.
Installa ed esegui il proxy Envoy
Segui questi passaggi per installare ed eseguire il proxy Envoy:
- Scarica un binario Envoy, crealo oppure utilizza Docker.
- 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"
Ora il servizio è 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 deve avere esito positivo con lo stato 200 e restituisce 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@example.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" } }
Passaggi successivi
Il traffico API verso il servizio httpbin
ora è gestito da Apigee. Ecco alcune funzionalità che puoi esplorare e provare:
- Se hai configurato il tuo prodotto API come spiegato nella sezione Come ottenere una chiave API, il limite di quota è stato impostato su 5 richieste al minuto. Prova a chiamare il servizio
httpbin
altre volte per attivare la quota. Quando la quota è esaurita, viene restituito un errore di stato HTTP 403. - Accedi all'analisi di Apigee nell'interfaccia utente Edge. Vai ad Analizza > Metriche API > Prestazioni proxy API.
- Genera e utilizza token JWT per autenticare le chiamate API.
- Utilizza l'interfaccia a riga di comando per gestire, creare token e controllare le associazioni. Per i dettagli sull'interfaccia a riga di comando, consulta questo riferimento.