Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Apigee ti consente di esporre rapidamente i servizi di backend come API. A tal fine, crea un proxy API che fornisca una facciata per il servizio di backend che vuoi esporre. Devi fornire solo l'indirizzo di rete del servizio di backend, insieme ad alcune informazioni utilizzate da Apigee per creare il proxy API esposto agli sviluppatori.
Il proxy API disaccoppia l'implementazione del servizio di backend dall'API utilizzata dagli sviluppatori. In questo modo, gli sviluppatori sono al riparo da eventuali modifiche future ai tuoi servizi di backend. Man mano che aggiorni i servizi di backend, gli sviluppatori, isolati da queste modifiche, possono continuare a chiamare l'API senza interruzioni.
Questo argomento fornisce informazioni sui vari tipi di proxy e sulle relative impostazioni. Per istruzioni dettagliate sulla creazione di proxy, consulta i seguenti argomenti:
Creazione di un proxy API utilizzando l'interfaccia utente
Il modo più semplice per creare un proxy API è utilizzare la procedura guidata Crea proxy.
Per accedere alla procedura guidata Crea proxy utilizzando l'interfaccia utente di Apigee:
- Accedi all'interfaccia utente di Apigee.
- Nella barra di navigazione, seleziona Sviluppa > Proxy API.
- Fai clic su Crea nuova.
La procedura guidata Crea proxy viene visualizzata e ti guida attraverso i passaggi per generare e aggiungere funzionalità minime a un proxy API.
La prima pagina della procedura guidata ti consente di creare un proxy API dalle seguenti origini:
Tipo | Descrizione |
---|---|
Proxy inverso (più comune) |
Un proxy API che instrada le richieste in entrata ai servizi di backend HTTP esistenti. Può essere un'API JSON o XML. Consulta la sezione Creare un proxy per un servizio HTTP di questa sezione. Fai clic su Utilizza specifica OpenAPI per generare il proxy da una specifica OpenAPI valida. Per ulteriori informazioni su questa opzione, consulta la sezione Utilizzare le specifiche OpenAPI per generare proxy più avanti in questa sezione. |
Nessun target |
Un proxy API senza backend API ("nessun target"). È simile alla creazione di un proxy inverso per un servizio HTTP descritta in precedenza, tranne per il fatto che non specificherai un'API esistente quando definisci i dettagli del proxy API. Fai clic su Utilizza specifica OpenAPI per generare il proxy da una specifica OpenAPI valida. Per ulteriori informazioni su questa opzione, consulta la sezione Utilizzare le specifiche OpenAPI per generare proxy più avanti in questa sezione. |
Carica bundle proxy | Un bundle di proxy API esistente (ad esempio uno dei proxy API di esempio disponibili su GitHub). Consulta Importazione di un proxy API da un pacchetto di proxy API. |
Le sezioni seguenti illustrano i dettagli di ciascun tipo di proxy.
Creazione di un proxy inverso per un servizio HTTP
Apigee genera proxy inversi in base alle seguenti informazioni:
- URL del servizio di backend.
- Percorso URI che identifica in modo univoco l'API che verrà esposta dal proxy API alle app per i consumatori.
L'URL del servizio di backend in genere rappresenta un'applicazione abilitata per i servizi di proprietà della tua organizzazione. Può anche puntare a un'API disponibile pubblicamente. L'API o il servizio può essere sotto il tuo controllo (ad esempio un'applicazione HR interna o un'applicazione Rails nel cloud) oppure può essere un'API o un servizio di terze parti (ad esempio Twitter o Instagram).
I seguenti dettagli del proxy sono disponibili dopo aver eseguito l'Assistente per la creazione di proxy e aver selezionato un tipo di proxy:
Campo | Descrizione |
---|---|
Nome | Nome visualizzato per l'API. Specifica caratteri alfanumerici, trattini (-) o trattini bassi (_). |
Percorso di base |
Frammento URI visualizzato dopo l'indirizzo Dopo il percorso di base sono presenti eventuali URL di risorse aggiuntive. La struttura dell'URL completo utilizzata dai client per chiamare il proxy API è la seguente:
Utilizzare i caratteri jolly nei percorsi di base Utilizza uno o più caratteri jolly |
Descrizione | (Facoltativo) Descrizione dell'API. |
Target (API esistente) | URL del servizio di backend invocato da questo proxy API. |
Importazione di un proxy API da un bundle di proxy API
Spesso i proxy API vengono definiti come una raccolta di file XML, insieme ad altri file di supporto. Se definisci i proxy API come un insieme di file esterni ad Apigee, puoi gestirli in un sistema di controllo del codice sorgente e poi importarli in Apigee per i test e il deployment.
Per importare i proxy API da un bundle di proxy API:
- Accedi alla procedura guidata Crea proxy come descritto in Creazione di un proxy API utilizzando l'interfaccia utente in precedenza in questa sezione.
- Fai clic su Carica bundle di proxy.
-
Nella pagina Carica bundle del proxy della procedura guidata del proxy, inserisci le seguenti informazioni:
Campo Descrizione Pacchetto ZIP File ZIP contenente la configurazione del proxy API. Trascina o fai clic per accedere al file. Nome Nome visualizzato per l'API. Il valore predefinito è il nome del file ZIP senza l'estensione. - Fai clic su Avanti.
Nella pagina Riepilogo, seleziona gli ambienti di deployment, se vuoi, e fai clic su Crea ed esegui il deployment
Viene visualizzato un messaggio di conferma che indica che il nuovo proxy API è stato creato correttamente.
- Fai clic su Modifica proxy per visualizzare la pagina dei dettagli del proxy API.
Creazione di proxy API gRPC
Oltre ai proxy API REST, al momento Apigee supporta i proxy API gRPC solo con il supporto del passthrough. Con il supporto del passthrough, il payload gRPC è opaco per Apigee e il traffico viene indirizzato dal client gRPC al server di destinazione gRPC preconfigurato nella configurazione di destinazione.Al momento, i proxy API gRPC di Apigee:
- Supporta le richieste gRPC unarie.
- Non è possibile utilizzare criteri che influiscono sul payload.
- Può essere utilizzato nei prodotti API non associati a proxy GraphQL o REST. Le quote specifiche per i prodotti API e altre impostazioni di operazione si applicano a tutti i proxy del prodotto.
- Non sono supportati in Apigee hybrid.
- Utilizza due variabili di flusso specifiche per gRPC:
request.grpc.rpc.name
erequest.grpc.service.name
. -
Può essere monitorato con queste variabili Apigee Analytics specifiche per gRPC:
x_apigee_grpc_rpc_name
,x_apigee_grpc_service_name
ex_apigee_grpc_status
. - Restituisce codici di stato gRPC.
Devi anche configurare il bilanciatore del carico in modo che supporti gRPC. Consulta Utilizzare gRPC con le applicazioni e Utilizzare i comandi gcloud CLI per creare il routing per gRPC.
Per creare un proxy API gRPC, definisci innanzitutto un server di destinazione gRPC (consulta Creazione di TargetServer) e poi specificalo quando crei il nuovo proxy.
Utilizzo dei comandi gcloud CLI per creare il routing per gRPC
Questa sezione mostra comandi di esempio per la creazione del routing per i proxy gRPC utilizzando la CLI gcloud. Le istruzioni includono la configurazione di bilanciatori del carico, un server di destinazione e un gruppo di istanze gestite.
Questa sezione non è una guida completa alla creazione del routing. Questi esempi potrebbero non essere appropriati per tutti i casi d'uso. Inoltre, queste istruzioni presuppongono la conoscenza del routing esterno (MIG) e della configurazione gRPC del bilanciatore del carico Cloud.
Imposta le variabili di ambiente
Queste variabili di ambiente vengono utilizzate nei comandi delle sottosezioni.
PROJECT_ID=YOUR_PROJECT_ID MIG_NAME=YOUR_MIG_NAME VPC_NAME=default VPC_SUBNET=default REGION=REGION_NAME APIGEE_ENDPOINT=ENDPOINT CERTIFICATE_NAME=CERTIFICATE_NAME DOMAIN_HOSTNAME=DOMAIN_HOSTNAME
Esempi di comandi gcloud CLI per la creazione del routing per i proxy gRPC utilizzando i nuovi bilanciatori del carico
Questa sezione mostra comandi di esempio per la creazione di proxy gRPC utilizzando la CLI gcloud e un nuovo bilanciatore del carico. Le istruzioni includono la configurazione del bilanciatore del carico, di un server di destinazione e di un gruppo di istanze gestite.
Crea il modello di istanza
gcloud compute instance-templates create $MIG_NAME \ --project $PROJECT_ID \ --region $REGION \ --network $VPC_NAME \ --subnet $VPC_SUBNET \ --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \ --machine-type e2-medium --image-family debian-12 \ --image-project debian-cloud --boot-disk-size 20GB \ --no-address \ --metadata ENDPOINT=$APIGEE_ENDPOINT,startup-script-url=gs://apigee-5g-saas/apigee-envoy-proxy-release/latest/conf/startup-script.sh
Crea il gruppo di istanze gestite
gcloud compute instance-groups managed create $MIG_NAME \ --project $PROJECT_ID --base-instance-name apigee-mig \ --size 2 --template $MIG_NAME --region $REGION
Configurare la scalabilità automatica
gcloud compute instance-groups managed set-autoscaling $MIG_NAME \ --project $PROJECT_ID --region $REGION --max-num-replicas 50 \ --target-cpu-utilization 0.75 --cool-down-period 90
Definire una porta denominata
gcloud compute instance-groups managed set-named-ports $MIG_NAME \ --project $PROJECT_ID --region $REGION --named-ports https:443
Crea una chiave e un certificato SSL gestiti da Google per il bilanciatore del carico
gcloud compute ssl-certificates create $CERTIFICATE_NAME \ --domains=$DOMAIN_HOSTNAME \ --project $PROJECT_ID \ --global
Verificare il provisioning del certificato
gcloud compute ssl-certificates describe $CERTIFICATE_NAME \ --global \ --format="get(name,managed.status, managed.Status)"
Crea il bilanciatore del carico Cloud globale (GCLB)
- Crea un controllo di integrità
gcloud compute health-checks create https hc-apigee-envoy-443 \ --project $PROJECT_ID --port 443 --global \ --request-path /healthz/ingress
- Crea il servizio di backend per http1
gcloud compute backend-services create
YOUR_BACKEND_1 \ --project $PROJECT_ID \ --protocol HTTPS \ --health-checks hc-apigee-envoy-443 \ --port-name https \ --timeout 302s \ --connection-draining-timeout 300s \ --global - Crea il servizio di backend per http2
gcloud compute backend-services create
YOUR_BACKEND_2 \ --project $PROJECT_ID \ --protocol HTTP2 \ --health-checks hc-apigee-envoy-443 \ --port-name https \ --timeout 302s \ --connection-draining-timeout 300s \ --global - Aggiungi i MIG al servizio di backend. In questo esempio riutilizziamo il gruppo MIG, ma potresti anche creare una nuova coppia di gruppi MIG.
gcloud compute backend-services add-backend
YOUR_BACKEND_1 \ --project $PROJECT_ID --instance-group $MIG_NAME \ --instance-group-region $REGION \ --balancing-mode UTILIZATION --max-utilization 0.8 --globalgcloud compute backend-services add-backend
YOUR_BACKEND_2 \ --project $PROJECT_ID --instance-group $MIG_NAME \ --instance-group-region $REGION \ --balancing-mode UTILIZATION --max-utilization 0.8 --global - Crea una mappa URL di bilanciamento del carico. Verifica innanzitutto se hai già una mappa di URL. In questo caso, assicurati di modificare la mappa in base ai requisiti riportati di seguito anziché sovrascriverla.
Crea un file YAML o utilizza il file esistente in
/tmp/apigee-map.yaml
con questa configurazione. Tieni presente che il backend http1 della mappa URL è predefinito.defaultService: projects/$PROJECT_ID/global/backendServices/
YOUR_BACKEND_1 name: matcher1 routeRules: - matchRules: - headerMatches: - headerName: Content-Type prefixMatch: application/grpc prefixMatch: / priority: 100 routeAction: weightedBackendServices: - backendService: projects/$PROJECT_ID/global/backendServices/YOUR_BACKEND_2 weight: 100Convalida la mappa URL:
gcloud compute url-maps validate --source /tmp/apigee-map.yaml --project $PROJECT_ID
Crea la mappa URL con il routing basato sugli header:
gcloud compute url-maps import apigee-http1-http2 \ --source /tmp/apigee-map.yaml \ --global --project $PROJECT_ID
Crea un proxy HTTPS di destinazione per il bilanciamento del carico
gcloud compute target-https-proxies create apigee-envoy-https-proxy \ --project $PROJECT_ID --url-map apigee-envoy-proxy-map \ --ssl-certificates $CERTIFICATE_NAME
Prenota un indirizzo IP esterno IPv4 e crea regole firewall per il bilanciatore del carico
gcloud compute addresses create lb-ipv4-vip-1 \ --project $PROJECT_ID \ --network-tier=PREMIUM \ --ip-version=IPV4 \ --global gcloud compute addresses describe lb-ipv4-vip-1 \ --project $PROJECT_ID --format="get(address)" --global gcloud compute forwarding-rules create apigee-envoy-https-lb-rule \ --project $PROJECT_ID --address lb-ipv4-vip-1 --global \ --target-https-proxy apigee-envoy-https-proxy --ports 443
Creare una regola firewall
gcloud compute firewall-rules create k8s-allow-lb-to-apigee-envoy \ --description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \ --project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \ --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy
Esempi di comandi gcloud CLI per la creazione del routing per i proxy gRPC per i bilanciatori del carico esistenti
Questa sezione mostra comandi di esempio per la creazione di proxy gRPC utilizzando la CLI gcloud e un bilanciatore del carico esistente. Le istruzioni includono la configurazione del bilanciatore del carico, di un server di destinazione e di un gruppo di istanze gestite.
Creare un altro servizio di backend per http2
# Create backend service for http2 gcloud compute backend-services createYOUR_BACKEND_2 \ --project $PROJECT_ID \ --protocol HTTP2 \ --health-checks hc-apigee-envoy-443 \ --port-name https \ --timeout 302s \ --connection-draining-timeout 300s \ --global
Collega il secondo servizio di backend al gruppo di istanze gestite
gcloud compute backend-services add-backendYOUR_BACKEND_2 \ --project $PROJECT_ID --instance-group $MIG_NAME \ --instance-group-region $REGION \ --balancing-mode UTILIZATION --max-utilization 0.8 --global
Elenca la mappa URL per il bilanciatore del carico globale Apigee esistente
gcloud compute url-maps list -project $PROJECT_ID
Seleziona il nome corretto della mappa URL utilizzata per il bilanciamento del carico di Apigee
gcloud compute url-maps exportAPIGEE_URL_MAP_NAME -project $PROJECT_ID
Creare un file YAML della mappa URL per il bilanciamento del carico
Se hai già una mappa di URL esistente, unisci questa configurazione. In caso contrario, crea un file YAML
in /tmp/apigee-map.yaml
con questa configurazione.
defaultService: projects/dg-runtime-test1/global/backendServices/YOUR_BACKEND_1 name: matcher1 routeRules: - matchRules: - headerMatches: - headerName: Content-Type prefixMatch: application/grpc prefixMatch: / priority: 100 routeAction: weightedBackendServices: - backendService: projects/dg-runtime-test1/global/backendServices/YOUR_BACKEND_2 weight: 100
Applicare il nuovo file YAML per il routing gRPC
gcloud compute url-maps importAPIGEE_URL_MAP_NAME \ --source /tmp/apigee-map.yaml \ --global -project $PROJECT_ID
Aggiunta di sicurezza
Nella pagina Norme comuni della procedura guidata Crea proxy, seleziona il tipo di autorizzazione di sicurezza da aggiungere. La tabella seguente riassume le opzioni disponibili:
Autorizzazione di sicurezza | Descrizione |
---|---|
Chiave API | Aggiunge una verifica semplice della chiave API al proxy API che stai definendo. In risposta, la piattaforma API aggiunge un criterio VerifyAPIKey e un criterio AssignMessage al proxy API. Il criterio VerifyAPIKey convalida le chiavi API presentate dalle app che effettuano la richiesta. Il criterio AssignMessage rimuove la chiave API, fornita nella chiamata API come parametro di query, dalla richiesta inoltrata al server di backend. |
OAuth 2.0 | Aggiunge l'autenticazione basata su OAuth 2.0 al proxy API. Apigee aggiunge automaticamente al proxy API i seguenti criteri: un criterio per verificare un token di accesso e un altro per rimuovere il token di accesso dal messaggio prima di inoltrarlo al servizio di backend. Per scoprire come ottenere un token di accesso, consulta OAuth. |
Passthrough (nessuna autorizzazione) | Nessuna autorizzazione richiesta. Le richieste vengono passate al backend senza alcun controllo di sicurezza su Apigee. |
Aggiunta del supporto per CORS
La condivisione delle risorse tra origini (CORS) è un meccanismo standard che consente a un browser web di effettuare richieste dirette a un altro dominio. Lo standard CORS definisce un insieme di intestazioni HTTP utilizzate da browser e server web per implementare la comunicazione tra domini.
Per aggiungere il supporto di CORS, puoi eseguire una delle seguenti operazioni:
- Aggiunta del criterio CORS al PreFlow della richiesta del ProxyEndpoint
- Seleziona Aggiungi intestazioni CORS nella pagina Criteri comuni della procedura guidata Crea proxy.
Per informazioni più dettagliate sul supporto CORS, inclusa l'aggiunta del supporto della verifica preliminare CORS a un proxy, consulta Aggiunta del supporto CORS a un proxy API.
Aggiunta di quote
Le quote proteggono il servizio di backend dal traffico elevato in Quota. Consulta la sezione Quote. (Non disponibile se è selezionata l'autorizzazione Passthrough).
Utilizzo delle specifiche OpenAPI per generare proxy
Questa sezione illustra l'opzione Utilizza OpenAPI disponibile per generare da una specifica OpenAPI i seguenti tipi di proxy API: inversi o senza target.
Che cos'è una specifica OpenAPI?
"L'Open API Initiative (OAI) si concentra sulla creazione, sull'evoluzione e sulla promozione di un formato di descrizione dell'API indipendente dal fornitore basato sulla specifica Swagger." Per ulteriori informazioni, consulta la OpenAPI Initiative.
Una specifica OpenAPI utilizza un formato standard per descrivere un'API RESTful. Scritta in formato JSON o YAML, una specifica OpenAPI è leggibile dalle macchine, ma è anche facile da leggere e comprendere per le persone. La specifica descrive gli elementi dell'API, ad esempio il percorso di base, i percorsi e i verbi, le intestazioni, i parametri di query, le operazioni, i tipi di contenuti, le descrizioni delle risposte e altro ancora. Inoltre, una specifica OpenAPI viene comunemente utilizzata per generare la documentazione dell'API.
Il seguente frammento di una specifica OpenAPI descrive il servizio target simulato di Apigee, http://mocktarget.apigee.net. Per maggiori informazioni, consulta la specifica OpenAPI per l'esempio helloworld.
openapi: 3.0.0 info: description: OpenAPI Specification for the Apigee mock target service endpoint. version: 1.0.0 title: Mock Target API paths: /: get: summary: View personalized greeting operationId: View a personalized greeting description: View a personalized greeting for the specified or guest user. parameters: - name: user in: query description: Your user name. required: false schema: type: string responses: "200": description: Success /help: get: summary: Get help operationId: Get help description: View help information about available resources in HTML format. responses: "200": description: Success ...
Tramite la procedura guidata Crea proxy, puoi importare una specifica OpenAPI e utilizzarla per generare un proxy API. Una volta generato il proxy, puoi utilizzare l'interfaccia utente di Apigee per svilupparlo ulteriormente aggiungendo norme, implementando codice personalizzato e così via, proprio come qualsiasi proxy Apigee.
Creazione di un proxy API da una specifica OpenAPI
Crea i proxy API da una specifica OpenAPI. Con pochi clic, avrai un proxy API con i percorsi, i parametri, i flussi condizionali e gli endpoint di destinazione generati automaticamente. Successivamente, puoi aggiungere funzionalità come la sicurezza OAuth, la limitazione di frequenza e la memorizzazione nella cache.
Nella procedura guidata Crea proxy, fai clic su Utilizza specifica OpenAPI e segui la procedura guidata per creare un proxy inverso o senza destinazione da una specifica OpenAPI. Per maggiori dettagli, consulta Creare un proxy API da una specifica OpenAPI.
Creazione di una nuova revisione di un proxy API
Crea una nuova revisione di un proxy API, come descritto di seguito.
Per creare una nuova revisione di un proxy API, segui questi passaggi:
- Accedi all'interfaccia utente di Apigee.
- Nella barra di navigazione, seleziona Sviluppa > Proxy API.
- Fai clic sul proxy API nell'elenco che vuoi copiare.
-
Fai clic sulla scheda Sviluppa.
- Seleziona il pulsante Salva e seleziona Salva come nuova revisione.
Eseguire il backup di un proxy API
Puoi eseguire il backup di un proxy API esistente come insieme di file XML in un bundle di proxy API. Una volta esportato in un bundle, puoi importare il proxy API in un nuovo proxy, come descritto in Importazione di un proxy API da un bundle di proxy API in precedenza in questa sezione. Per ulteriori informazioni, consulta Scaricare i proxy API.
Creazione di un proxy API utilizzando l'API
Per creare un proxy API utilizzando l'API, consulta Creazione di un proxy API.