Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
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 del proxy API vengono inoltrate tramite Envoy in esecuzione come applicazione nativa con Edge che fornisce servizi di gestione delle API tramite il servizio remoto Apigee per 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 in locale. Envoy gestisce il traffico API da e verso il servizio di destinazione e comunica con il servizio remoto. Il servizio remoto comunica anche con Apigee Edge Cloud per recuperare le informazioni sui prodotti e sui proxy API.
Esegui il provisioning di Apigee Edge
In questo passaggio utilizzerai Remote Service CLI per eseguire il provisioning degli asset di Apigee Adapter per Envoy su Apigee Edge. Il comando di provisioning esegue il deployment di un proxy API in Apigee Edge, e configura anche un certificato Apigee e genera le credenziali che il servizio remoto utilizzerà per connettersi ad Apigee dal tuo sistema.
- Vai alla directory
$CLI_HOME
:cd $CLI_HOME
- Crea le seguenti variabili di ambiente. Queste variabili verranno utilizzate come
parametri allo 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 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 questo comando per eseguire il provisioning del proxy del servizio remoto su Apigee Edge:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
- Controlla i contenuti del file
config.yaml
. Dovrebbe avere il seguente aspetto:# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52 tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-org-test.apigee.net/remote-service org_name: my-org env_name: test key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4 secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98
I valori della chiave e del secret vengono utilizzati per convalidare le richieste dal proxy di servizio remoto con Apigee Edge.
Esegui il servizio Apigee Remote Service for Envoy
Puoi eseguire il servizio remoto come file binario nativo o su Docker.
Esegui il servizio in modo nativo
Esegui il file 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. Là puoi scegliere fra tre varianti di immagini:
Variazione | Immagine |
---|---|
scratch | google/apigee-envoy-adapter:v1.0.0 |
Ubuntu | google/apigee-envoy-adapter:v1.0.0-ubuntu |
Ubuntu con Boring Crypto | google/apigee-envoy-adapter:v1.0.0-boring |
Ad esempio, per eseguire l'immagine scratchpad con il tuo config.yaml
locale disponibile come /config.yaml
mediante un montaggio del volume, utilizza questo comando:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0
Installa ed esegui il proxy Envoy
Segui questi passaggi per installare ed eseguire il proxy Envoy:
- Scarica un file binario di Envoy oppure crealo, oppure utilizza Docker.
- Esegui Envoy utilizzando un file di configurazione di esempio impostato per il servizio
httpbin.org
:envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
Verifica l'installazione
- Chiama il
httpbin
servizio:curl -i http://localhost:8080/httpbin/headers
Ora il servizio è gestito da Apigee e dato che 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
- Configurare un prodotto API e ottenere una chiave API come spiegato in Come ottenere una chiave API.
- Effettua una chiamata API utilizzando la chiave:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"
La chiamata dovrebbe riuscire 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
httpbin
alcune altre volte per attivare la quota. Quando superi la quota, viene visualizzato questo errore:HTTP/1.1 429 Too Many Requests
- Accedi ad Apigee Analytics dalla UI Edge. Vai a Analizza > Metriche API > API Prestazioni del proxy.
- 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 maggiori dettagli sull'interfaccia a riga di comando, consulta il riferimento.