Utilizzo dell'adattatore Apigee per Envoy con Apigee Edge

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.

La figura seguente mostra l'architettura di base per l'integrazione di Apigee Edge:

Una vista ad alto livello dell'Adattatore Envoy in esecuzione in modo nativo per comunicare con Apigee Edge Cloud, inclusi piano di gestione, piano di runtime e servizi Google Cloud

Un proxy Envoy e un servizio remoto sono in esecuzione localmente. Envoy gestisce il traffico API da e verso il servizio di destinazione e comunica con il servizio remoto. Il servizio remoto comunica inoltre con Apigee Edge Cloud per recuperare le informazioni su prodotti API e proxy.

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.

  1. Vai alla directory $CLI_HOME:
    cd $CLI_HOME
  2. 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.
  3. Esegui questo comando per eseguire il provisioning del proxy di servizio remoto su Apigee Edge:
    ./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. Verifica i contenuti del file config.yaml. Dovrebbe avere un aspetto simile al seguente:
    # 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 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
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 tramite il 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:

  1. Scarica un binario Envoy, crealo oppure utilizza Docker.
  2. 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

Testa l'installazione

  1. Chiama il servizio httpbin:
    curl -i http://localhost:8080/httpbin/headers
    

    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/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
  2. Configura un prodotto API e ottieni una chiave API come spiegato in Come ottenere una chiave API.
  3. 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 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. Se superi la quota, verrà visualizzato questo errore:
    HTTP/1.1 429 Too Many Requests
  • 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.