Utilizzo dell'adattatore Apigee per Envoy con Apigee Edge

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. API le chiamate proxy scorrono attraverso Envoy in esecuzione come applicazione nativa, mentre Edge fornisce l'API tramite il servizio remoto Apigee per Envoy.

Esegui il provisioning di Apigee Edge

In questo passaggio, utilizzerai Remote Service CLI per eseguire il provisioning degli asset Apigee Adapter per Envoy con 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.

  1. Vai alla directory $CLI_HOME:
    cd $CLI_HOME
  2. 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.
  3. Esegui questo comando per eseguire il provisioning del proxy del servizio remoto su Apigee Edge:

    Se non stai eseguendo 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 stai eseguendo 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
  4. 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 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
Senza distro di Google 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 mediante un montaggio del volume, utilizza questo comando:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0

Crea file di configurazione di esempio

Genera un file di configurazione Envoy utilizzando l'interfaccia a riga di comando:

  1. Assicurati di essere nella directory $ENVOY_HOME.
  2. Elenca i modelli di configurazione disponibili:
    $CLI_HOME/apigee-remote-service-cli samples templates
  3. Esegui il comando Samples. Per TEMPLATE, sostituisci uno dei modelli di 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 ulteriori informazioni, consulta Comando di Samples.

Installa ed esegui il proxy Envoy

Segui questi passaggi per installare ed eseguire il proxy Envoy:

  1. Scarica un file binario di Envoy oppure crealo, oppure utilizza Docker.
  2. Esegui Envoy utilizzando un file di configurazione di esempio che hai generato in precedenza per il servizio httpbin.org:
    envoy -c ./samples/envoy-config.yaml

Verifica l'installazione

  1. Configurare un prodotto API e ottenere una chiave API come spiegato in Come ottenere una chiave API.
  2. 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 dato che 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
  3. 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 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 la quota è esaurita, viene visualizzato un errore 403 dello stato HTTP restituito.
  • 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.