Note di rilascio di Apigee Adapter for Envoy

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Questa pagina documenta le note di rilascio per tutti i software Apigee Adapter for Envoy per il 2021 e versioni precedenti.

Consulta l'adattatore per Envoy per le note di rilascio correnti (2022 e versioni successive).

v2.0.4

Il 3 dicembre 2021 abbiamo rilasciato la versione 2.0.4 di Apigee Adapter for Envoy.

Funzionalità e miglioramenti

  • L'elenco delle versioni Envoy e Istio supportate per il comando samples dell'interfaccia a riga di comando è stato aggiornato. Queste versioni sono ora supportate per gli esempi:
    • Versioni Envoy da 1.18 a 1.20
    • Istio versioni da 1.10 a 1.12

Problemi risolti

  • È stato aggiunto un controllo pari a zero per il caricamento della chiave privata del blocco PEM per evitare il panico. (Numero 360)
  • Gli errori di autorizzazione del servizio remoto ora vengono registrati a livello di debug. Viene fatta un'eccezione a questa classificazione per gli errori di recupero dei token per le chiavi API. In questo caso, gli errori vengono registrati a livello di errore, in modo che siano visibili anche se il livello di log del debug per apigee-remote-service-envoy è disabilitato. Vedi anche Impostare i livelli dei log dei servizi remoti. (Numero 104)

v2.0.3

Il 21 settembre 2021 abbiamo rilasciato la versione 2.0.3 di Apigee Adapter for Envoy.

Problemi risolti

  • È stato risolto un problema di logging di Analytics con risposte dirette. Il problema si è verificato solo in determinate circostanze. Ecco alcuni esempi:
    • Per le richieste che non richiedono il controllo di autorizzazione, non è stato generato alcun authContext e i metadati dinamici erano nulli, determinando la scelta della voce di log degli accessi.
    • La risposta negata utilizzava codice RPC anziché codice HTTP, causando la visualizzazione riuscita dei record nella UI di Apigee.

v2.0.2

Il 7 giugno 2021 abbiamo rilasciato la versione 2.0.2 di Apigee Adapter for Envoy.

Problemi risolti

  • È stata corretta una race condition che potrebbe causare errori 403 e panico quando gli ambiti delle richieste JWT erano nulli.

v2.0.1

Martedì 29 aprile 2021, abbiamo rilasciato la versione 2.0.1 di Apigee Adapter for Envoy.

Problemi risolti

Selezione delle Descrizione
Insetto

È stato risolto un problema che causava il malfunzionamento della versione 2.0.0 quando utilizzata con Apigee hybrid v1.5.0 o Apigee. Se esegui l'upgrade dell'installazione ibrida di Apigee alla versione 1.5.x, il percorso di upgrade consigliato per l'adattatore è:

  1. Esegui l'upgrade dell'adattatore Apigee per Envoy alla versione 2.0.1.
  2. Esegui l'upgrade di Apigee hybrid alla versione 1.5.1.

Se utilizzi Apigee, esegui l'upgrade dell'adattatore alla versione v2.0.1.

v2.0.0

Martedì 6 aprile 2021, abbiamo rilasciato la versione 2.0.0 di Apigee Adapter for Envoy.

Funzionalità e miglioramenti

Selezione delle Descrizione
Supporto dell'ambiente multi-tenant

Ora puoi abilitare l'adattatore per gestire più ambienti in un'organizzazione Apigee. Questa funzionalità consente di utilizzare un adattatore Apigee per Envoy associato a un'organizzazione Apigee per gestire più ambienti. Prima di questa modifica, un adattatore era sempre collegato a un ambiente Apigee. Per maggiori informazioni su questa funzionalità, consulta Supporto dell'ambiente multi-tenant.

Supporto dell'API Envoy v3
Supporto per i metadati di Envoy

Envoy 1.16 e versioni successive consente l'invio di metadati ext_authz senza dover utilizzare le intestazioni. Grazie a questa modifica e alle relative modifiche, ora forniamo codici di risposta HTTP migliori per le richieste rifiutate e non dobbiamo più installare un filtro RBAC in Envoy. Consulta

Questa funzionalità è supportata solo per Envoy 1.16 e versioni successive e Istio 1.9 e versioni successive.

Con questa modifica, la seguente configurazione non viene più aggiunta al file di configurazione Envoy (envoy-config.yaml):

additional_request_headers_to_log:
    - x-apigee-accesstoken
    - x-apigee-api
    - x-apigee-apiproducts
    - x-apigee-application
    - x-apigee-clientid
    - x-apigee-developeremail
    - x-apigee-environment

Se vuoi aggiungere intestazioni alle richieste relative a un caso speciale, imposta la proprietà append_metadata_headers:true nel file config.yaml dell'adattatore.

Suddividi il proxy remote-token dal proxy remote-service

Il proxy di remote-service è stato sottoposto a refactoring in due proxy separati. La versione 2.0.x, con il provisioning, installerà due proxy API: remote-service e remote-token. Gli endpoint /token e /certs sono stati spostati dal proxy remote-service a remote-token.

Questa modifica crea un'utile separazione delle funzioni. Ora, il proxy remote-service viene utilizzato solo per le comunicazioni interne dell'adattatore, mentre il proxy per token remoto fornisce un flusso di lavoro OAuth di esempio che puoi personalizzare. Non sovrascriveremo mai il tuo proxy remote-token personalizzato, anche se viene utilizzato il comando provision --force-proxy-install.

Supporto dell'acquisizione di dati

L'adattatore ora supporta il trasferimento di metadati Envoy alla funzionalità di acquisizione dati di Apigee, che invia i dati acquisiti nelle variabili da te specificate all'analisi Apigee per l'utilizzo nei report personalizzati. Questa funzionalità offre una funzionalità simile al criterio di acquisizione dei dati di Apigee. Per maggiori informazioni su questa funzionalità, consulta Acquisizione di dati per report personalizzati.

RBAC non richiesto

Come indicato in precedenza nella sezione Supporto dei metadati di Envoy, ora rifiutiamo immediatamente le richieste non autorizzate senza richiedere un filtro RBAC separato. Poiché RBAC non viene utilizzato, ora i client riceveranno questi codici di stato HTTP, a seconda dei casi, dall'adattatore:

  • 401 Non autorizzato
  • richiesta vietata (403)
  • 429 Troppe richieste
  • errore interno del server (500)

Se vuoi consentire il proseguimento delle richieste non autorizzate, puoi farlo impostando auth:allow_unauthorized:true nel file config.yaml dell'adattatore.

x-apigee-* intestazioni non vengono più aggiunte per impostazione predefinita

Come indicato in precedenza nella sezione Supporto dei metadati di Envoy, le intestazioni x-apigee-* non vengono più aggiunte per impostazione predefinita. Se vuoi aggiungerli, imposta append_metadata_headers:true nel file config.yaml. Questa configurazione è completamente facoltativa e dovrebbe essere utilizzata solo quando è opportuno inoltrare le intestazioni al servizio di destinazione upstream.

Abbinamento personalizzato di una richiesta a un'operazione del prodotto API Apigee

La semantica della proprietà di configurazione api_header rimane la stessa della proprietà target_header precedente (il valore predefinito è ancora il nome host di destinazione) e i contenuti dell'intestazione specificata continueranno a corrispondere all'attributo Remote service target del prodotto API o al campo Origine in una configurazione delle operazioni di prodotto API.

Per sostituire questo valore di intestazione utilizzando i metadati Envoy, puoi passare l'elemento di metadati apigee_api da Envoy all'adattatore per specificare direttamente l'origine API del prodotto API Remote Service Target o API Product Operation. Per eseguire la configurazione, aggiungi un codice simile al seguente al file di configurazione Envoy (che puoi generare utilizzando l'interfaccia a riga di comando dell'adattatore):

typed_per_filter_config:
  envoy.filters.http.ext_authz:
    "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
    check_settings:
      context_extensions:
        apigee_api: httpbin.org
Le analisi delle richieste rifiutate vengono registrate immediatamente

Envoy Adapter registrerà immediatamente le richieste rifiutate in Analytics come richiesto, anziché attendere che la richiesta venga restituita nel log degli accessi. Questa operazione è più efficiente e non richiede l'aggiunta di metadati alla richiesta.

Il supporto di UDCA è stato rimosso

Il trasferimento di flussi all'agente Universal Data Collection Agent (UDCA) di Apigee in Apigee hybrid e Apigee non è più necessario per l'analisi poiché è stato sostituito dal caricamento diretto. Questa modifica rimuove il supporto legacy per questa opzione.

Supporto mTLS aggiunto per Edge per Cloud privato nei comandi dell'interfaccia a riga di comando di provisioning/associazione

Gli utenti di Apigee Edge per cloud privato possono fornire certificati TLS lato client e certificato root tramite ‑‑tls‑cert, ‑‑tls‑key e ‑‑tls‑ca rispettivamente durante il provisioning o l'elenco delle associazioni di prodotti tramite l'interfaccia a riga di comando.

Supporto di mTLS tra l'adattatore e il runtime Apigee

Puoi fornire certificati TLS lato client nella sezione tenant del file config.yaml dell'adattatore per utilizzare mTLS tra l'adattatore e il runtime Apigee. Questa modifica si applica a tutte le piattaforme Apigee supportate. Abilita inoltre il protocollo mTLS per l'analisi per la piattaforma Apigee Edge per cloud privato. Per maggiori informazioni, consulta Configurare mTLS tra l'adattatore e il runtime Apigee.

Altri problemi e correzioni

  • È stato risolto un problema per cui più configurazioni operative con la stessa origine API condividevano gli stessi identificatori dei bucket di quota, causando conflitti nel calcolo della quota. (Numero 34)
  • È stato risolto un problema per cui le operazioni senza verbi specificati causavano il rifiuto della richiesta (il comportamento previsto è consentire tutti i verbi se non ne sono specificati nessuno). (Numero 39)

v1.4.0

Mercoledì 16 dicembre 2020 abbiamo rilasciato la versione 1.4.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da Distroless, Ubuntu e Ubuntu di Google con Boring Crypto.

In questa versione sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3.x, 1.4.x (data di rilascio in attesa), Apigee per cloud pubblico, Apigee per cloud privato e Apigee su Google Cloud
  • Istio versioni 1.5, 1.6, 1.7, 1.8
  • Versioni Envoy 1.14, 1.15, 1.16

Funzionalità e miglioramenti

Selezione delle Descrizione
Il proxy remote-service non richiede più l'associazione con un prodotto API che utilizza destinazioni dei servizi remoti.

Poiché questa associazione non è più necessaria, tieni presente le seguenti modifiche:

  • Un prodotto API remote-service non viene più creato durante il provisioning.
  • Il comando dell'interfaccia a riga di comando bindings verify non è più pertinente ed è stato deprecato.
Il ruolo Amministratore organizzazione Apigee non è più necessario per il provisioning.

Anziché richiedere l'autorizzazione di amministratore dell'organizzazione per il provisioning, ora puoi utilizzare i ruoli IAM Creatore e Deployer API. Devi concedere entrambi questi ruoli affinché il provisioning venga eseguito correttamente.
(Si applica solo ad Apigee su Google Cloud e solo ad Apigee ibrido)

Altri problemi e correzioni

  • È stato risolto un problema a causa del quale il nuovo provisioning di Apigee senza l'opzione --rotate si è chiuso con un errore.
  • L'interfaccia a riga di comando di provisioning ora legge e riutilizza le credenziali dell'account di servizio di analisi da un determinato file config.yaml (problema n. 133).

v1.3.0

Lunedì 23 novembre 2020, abbiamo rilasciato la versione 1.3.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da Distroless, Ubuntu e Ubuntu di Google con Boring Crypto.

In questa versione sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3.x, 1.4.x (data di rilascio in attesa), Apigee per cloud pubblico, Apigee per cloud privato e Apigee su Google Cloud
  • Istio versioni 1.5, 1.6, 1.7, 1.8
  • Versioni Envoy 1.14, 1.15, 1.16

Funzionalità e miglioramenti

Selezione delle Descrizione
Supporto per OperationGroups dei prodotti API. OperationGroups associa le risorse e l'applicazione della quota associata in un proxy o in un servizio remoto con i metodi HTTP. Per maggiori dettagli, consulta OperationGroup.
(Si applica solo ad Apigee su Google Cloud e solo ad Apigee ibrido)
Rimuovi il supporto del proxy di inoltro dinamico dalla generazione di campioni. A causa di questa modifica, i client devono includere l'intestazione HOST se il nome host è diverso dall'host della destinazione del servizio remoto impostato nel prodotto API. Ad esempio:
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"

Vedi Creare un prodotto API.

Supporto degli account di servizio e Workload Identity. Per consentire il caricamento dei dati di analisi su Apigee durante l'esecuzione dell'adattatore all'esterno di un cluster ibrido Apigee, devi utilizzare il parametro analytics-sa con il comando apigee-remote-service-cli provision. Inoltre, l'adattatore ora supporta Workload Identity su Google Kubernetes Engine (GKE). Vedi Provisioning del comando.
(Si applica solo ad Apigee su Google Cloud e solo ad Apigee ibrido)
Nuovo attributo di configurazione jwt_provider_key. Questa chiave viene aggiunta al file di configurazione. Rappresenta la chiave payload_in_metadata del provider JWT nella configurazione di Envoy o l'emittente JWT RequestAuthentication nella configurazione di Istio.
Il valore predefinito dell'attributo di configurazione KeepAliveMaxConnectionAge è di 1 minuto. L'impostazione predefinita precedente era di 10 minuti. Questa modifica consente una scalabilità più fluida. Questo valore viene utilizzato anche per la durata del flusso di log di accesso. Vedi il file di configurazione.
Rimossi comandi dell'interfaccia a riga di comando. I seguenti comandi dell'interfaccia a riga di comando sono stati deprecati. Ti consigliamo di utilizzare le API Apigee per aggiornare i target dei servizi remoti per i prodotti basati su API:
  • apigee-remote-service-cli bindings add
  • apigee-remote-service-cli bindings remove
È stato aggiunto un nuovo comando dell'interfaccia a riga di comando. Il comando:
apigee-remote-service-cli samples templates

elenca le opzioni disponibili che puoi utilizzare con il flag --template nel comando samples create. Consulta la documentazione di riferimento dell'interfaccia a riga di comando.

Comando dell'interfaccia a riga di comando esistente modificato. È stata apportata una modifica al comando apigee-remote-service-cli samples create. I flag specifici per i modelli Envoy o Istio sono controllati rigorosamente e vengono restituiti errori per i flag utilizzati in modo errato. L'opzione del modello native è deprecata. Per ottenere un elenco dei modelli disponibili, utilizza il comando apigee-remote-service-cli samples templates. Consulta anche la documentazione di riferimento dell'interfaccia a riga di comando.
La risposta dell'endpoint /token ora segue la specifica OAuth2. Il parametro access_token è stato aggiunto alla risposta, mentre il parametro token è deprecato.

v1.2.0

Mercoledì 30 settembre 2020 abbiamo rilasciato la versione 1.2.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da Distroless, Ubuntu e Ubuntu di Google con Boring Crypto.

In questa versione sono supportate le seguenti piattaforme:

  • Apigee versione ibrida 1.3.x
  • Istio versioni 1.5, 1.6, 1.7
  • Envoy versioni 1.14, 1.15

Funzionalità e miglioramenti

Selezione delle Descrizione
Assistenza per Apigee su Google Cloud Ora puoi utilizzare l'adattatore Apigee per Envoy con Apigee su Google Cloud. Puoi eseguire l'adattatore nel proprio cluster oppure eseguendo il Servizio remoto per Envoy come programma binario nativo o in un container. Esegui il provisioning dell'adattatore su Apigee utilizzando il comando di provisioning.
Caricamento diretto dei dati di analisi Ora puoi configurare l'adattatore Apigee per caricare i dati di analisi direttamente su Apigee. Se utilizzi Apigee hybrid, questa nuova funzionalità consente di eseguire il deployment dell'adattatore nel proprio cluster Kubernetes, al di fuori del cluster in cui è installato Apigee hybrid. Per attivare il caricamento diretto, utilizza il nuovo flag --analytics-sa con il comando provision. Vedi il comando di provisioning.
Il controllo di integrità restituisce "Pronto" dopo che i dati di prodotto API sono stati caricati da Apigee Il controllo di integrità di Kubernetes non restituirà "Pronto" finché i dati di prodotto dell'API non vengono caricati da Apigee. Questa modifica facilita la scalabilità e l'upgrade, poiché non verrà inviato traffico all'adattatore per cui è stata creata un'istanza finché non è pronto.

Altri problemi e correzioni

  • È stato risolto un problema per risolvere un potenziale blocco di sincronizzazione della quota (problema n. 17).
  • Le annotazioni Prometheus sono state spostate nelle specifiche dei pod (numero 69).
  • È stato risolto un problema per risolvere gli errori di verifica emessi in modo errato (Problema 62).

v1.1.0

Mercoledì 26 agosto 2020 abbiamo rilasciato la versione 1.1.0 di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da Distroless, Ubuntu e Ubuntu di Google con Boring Crypto.

Nella versione 1.1.0 sono supportate le seguenti piattaforme:

  • Apigee hybrid versione 1.3
  • Istio versioni 1.5, 1.6, 1.7
  • Envoy versioni 1.14, 1.15

Funzionalità e miglioramenti

Selezione delle Descrizione
Verifica associazioni È stato aggiunto un nuovo comando apigee-remote-service-cli bindings verify all'interfaccia a riga di comando. Questo comando verifica che al prodotto API associato specificato e alle relative app per sviluppatori associate sia associato anche un prodotto di servizio remoto. Consulta Verificare un'associazione.
Genera esempi È stato aggiunto un nuovo comando apigee-remote-service-cli samples create all'interfaccia a riga di comando. Questo comando crea file di configurazione di esempio per i deployment nativi di Envoy o Istio. I file di configurazione generati con questo comando sostituiscono i file di esempio installati con Adapter for Envoy nelle versioni precedenti. Vedi il comando Samples.
Autenticazione OAuth2 L'adattatore ora utilizza l'autenticazione OAuth2 quando l'autenticazione a più fattori (MFA) è abilitata per Apigee. Usa il flag --mfa ogni volta che usi il flag --legacy.
Container distroless L'adattatore ora utilizza l'immagine distroless (gcr.io/distroless/base) di Google anziché scratch per la base di immagini Docker predefinita.

Altri problemi e correzioni

  • È stato risolto un problema dell'interfaccia a riga di comando per i comandi di associazione in OPDK. (n. 29)
  • La quota potrebbe bloccarsi in caso di perdita della connessione (apigee/apigee-remote-service-envoy. (n. 31)
  • Ora le immagini Docker vengono create con un utente non root (999).
  • Gli esempi Kubernetes applicano l'utente non deve essere root.
  • --http1.1 non è più necessario per i comandi curl sugli endpoint proxy. Il flag è stato rimosso dagli esempi.

v1.0.0

Venerdì 31 luglio 2020 abbiamo rilasciato la versione GA di Apigee Adapter for Envoy.

Piattaforme supportate

Pubblichiamo programmi binari per MacOS, Linux e Windows.

Pubblichiamo immagini Docker da zero, Ubuntu e Ubuntu con Boring Crypto.

Nella versione 1.0.0 sono supportate le seguenti piattaforme:

  • Apigee hybrid versione 1.3
  • Istio versioni 1.5, 1.6
  • Envoy versioni 1.14, 1.15

Aggiunte e modifiche

Tra la versione 1.0-beta4 e la versione GA, sono state apportate le seguenti modifiche all'adattatore:

  • Crea build Go noioso

    È ora disponibile una nuova build che utilizza le librerie Go BoringSSL conformi a FIPS.

  • Modifiche ai flag a livello di log

    I flag del livello di logging del servizio apigee-remote-service-envoy sono stati modificati per coerenza:

    Vecchio flag Nuova segnalazione
    log_level log-level
    json_log json-log
  • Nuovi flag dell'interfaccia a riga di comando

    Sono stati aggiunti nuovi flag ai comandi token dell'interfaccia a riga di comando:

    Flag Descrizione
    --legacy Imposta questo flag se utilizzi Apigee Cloud.
    --opdk Imposta questo flag se utilizzi Apigee per il cloud privato.