Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
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 ai 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.
La figura seguente mostra l'architettura di base per l'integrazione di Apigee Edge:

Un proxy Envoy e un servizio remoto sono in esecuzione localmente. Envoy gestisce il traffico API verso e dal servizio di destinazione e comunica con il servizio remoto. Il servizio remoto comunica anche con Apigee Edge Cloud per recuperare le informazioni sul prodotto API e sul proxy.
Provisioning di Apigee Edge
In questo passaggio utilizzerai la CLI del servizio remoto per eseguire il provisioning degli asset di Apigee Adapter for Envoy in Apigee Edge. Il comando di provisioning esegue il deployment di un proxy API in Apigee Edge, configura anche un certificato in 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_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport PASSWORD=your_apigee_passwordDove:
Variabile Descrizione organization_name Il nome della tua organizzazione Apigee. environment_name Il nome di un ambiente nella 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 il seguente comando per eseguire il provisioning del proxy del servizio remoto su Apigee Edge:
./apigee-remote-service-cli provision --legacy --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml - Controlla i contenuti del file
config.yaml. Il sito dovrebbe avere il seguente aspetto:# 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 di chiave e secret vengono utilizzati per convalidare le richieste dal proxy del servizio remoto ad Apigee Edge.
Esegui il servizio Apigee Remote Service for Envoy
Puoi eseguire il servizio remoto come binario nativo o su Docker.
Esegui il servizio in modo nativo
Esegui il binario del servizio con il file di configurazione generato dal comando di provisioning:
$CLI_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 immagine:
| Variazione | Immagine |
|---|---|
| Google distroless | gcr.io/distroless/base |
| Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
| Ubuntu con Boring Crypto | google/apigee-envoy-adapter:v1.1.0-boring |
Ad esempio, per eseguire l'immagine scratch con il file config.yaml locale disponibile come /config.yaml
tramite un mount del volume, utilizza questo comando:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.1.0
Crea file di configurazione di esempio
Utilizza il comando apigee-remote-service-cli samples create per generare
file di configurazione di esempio.
Per questo esempio, sono necessari i seguenti file generati:
envoy-config.yaml- Una configurazione di deployment per un servizio HTTP.
Per generare gli esempi:
- Vai alla directory
$CLI_HOME. Esegui questo comando per generare i file:
./apigee-remote-service-cli samples create --template native -c ./config.yaml
I seguenti file vengono generati nella directory
./samples:ls samples envoy-config.yaml
Per ulteriori informazioni, consulta il comando Samples.
Installa ed esegui il proxy Envoy
Segui questi passaggi per installare ed eseguire il proxy Envoy:
- Scarica un binario Envoy o crealo, oppure utilizza Docker.
- Esegui Envoy utilizzando un file di configurazione di esempio generato in precedenza per il servizio
httpbin.org:envoy -c $CLI_HOME/samples/envoy-config.yaml
Testa l'installazione
- Chiama il
httpbinservizio:curl -i http://localhost:8080/httpbin/headers
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/httpbin/headers 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
- Configura un prodotto API e ottieni una chiave API come spiegato in Come ottenere una chiave API.
- Effettua una chiamata API utilizzando la chiave:
export APIKEY=YOUR_API_KEYcurl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"La chiamata dovrebbe avere esito positivo con uno 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@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 prodotto API come spiegato in
Come ottenere una chiave API,
il limite di quota è stato impostato su 5 richieste al minuto. Prova a chiamare il servizio
httpbinaltre volte per attivare la quota. Quando la quota è esaurita, viene restituito un errore di stato HTTP 403. - Accedi ad Apigee Analytics nell'interfaccia utente Edge. Vai a Analizza > Metriche API > API Prestazioni proxy API.
- Genera e utilizza i token JWT per autenticare le chiamate API.
- Utilizza la CLI per gestire, creare token e controllare i binding. Per i dettagli della CLI, consulta la sezione Riferimento.