Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Ogni organizzazione ha un ciclo di vita di sviluppo del software (SDLC) univoco. Spesso è necessario sincronizzare e allineare il deployment dei proxy API ai processi utilizzati per i servizi di backend.
I metodi dell'API Edge mostrati in questo argomento possono essere utilizzati per integrare il proxy API per semplificare la gestione dei contenuti SDLC della tua organizzazione. Un uso comune di questa API è la scrittura di script o codice che eseguono il deployment di proxy API o che migrano i proxy API da un ambiente all'altro, nell'ambito un processo automatizzato più grande che esegue anche il deployment o la migrazione di altre applicazioni.
L'API Edge non fa ipotesi sul tuo SDLC (o su chiunque altro, in questo caso). Piuttosto, espone funzioni atomiche che possono essere coordinate dal tuo team di sviluppo per automatizzare e ottimizzare il ciclo di vita di sviluppo delle API.
Per informazioni complete, consulta le API Edge.
Per utilizzare l'API Edge, devi autenticarti nelle chiamate. Puoi farlo con uno dei seguenti metodi:
- OAuth2 (solo cloud pubblico)
- SAML (cloud pubblico e privato)
- Autorizzazione di base (non consigliata; cloud pubblico e privato)
Questo argomento è incentrato sull'insieme di API per la gestione dei proxy API.
Video: guarda questo breve video per scoprire come eseguire il deployment di un'API.
Interazione con l'API
I passaggi seguenti illustrano semplici interazioni con le API.
Elenco delle API nella tua organizzazione
Per iniziare, elenca tutti i proxy API nella tua organizzazione. Ricorda di sostituire voci per EMAIL:PASSWORD e ORG_NAME. Per istruzioni, vedi Utilizzare l'API Edge.
curl -u EMAIL:PASSWORD \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis
Esempio di risposta:
[ "weatherapi" ]
Ottieni un'API
Puoi chiamare il metodo GET
su qualsiasi proxy API nella tua organizzazione. Questa chiamata restituisce un elenco
tutte le revisioni disponibili del proxy API.
curl -u EMAIL:PASSWORD -H "Accept: application/json" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi
Esempio di risposta:
{ "name" : "weatherapi", "revision" : [ "1" ] }
L'unico dettaglio restituito da questo metodo è il nome del proxy API insieme all'oggetto revision, a cui è associato un numero. I proxy API sono costituiti da un bundle di configurazioni . Le revisioni forniscono un meccanismo leggero per gestire gli aggiornamenti della configurazione man mano che esegui l'iterazione. Le revisioni sono numerate in sequenza per consentirti di annullare una modifica mediante il deployment una revisione precedente del proxy API. Inoltre, puoi eseguire il deployment di una revisione di un proxy API di produzione, continuando a creare nuove revisioni del proxy API completamente gestito di Google Cloud. Quando è tutto pronto, puoi promuovere la revisione superiore del tuo proxy API dal di test rispetto alla revisione precedente del proxy API nell'ambiente di produzione.
In questo esempio è presente una sola revisione perché il proxy API è stato appena creato. Come API il proxy si sposta attraverso il ciclo di vita della configurazione e del deployment iterativi, il numero incrementi per numeri interi. Utilizzando le chiamate API dirette per il deployment, puoi facoltativamente incrementare numero di revisione del proxy API. A volte, quando apporti modifiche di minore entità, potresti non volere e incrementare la revisione.
Ottieni revisione API
La versione dell'API (ad esempio api.company.com/v1
) dovrebbe cambiare molto
con minore frequenza. Quando incrementa la versione dell'API, gli sviluppatori vedono che c'è
una modifica significativa nella firma dell'interfaccia esterna esposta dall'API.
La revisione del proxy API è un numero incrementato associato a un proxy API
configurazione. I servizi API mantengono le revisioni delle tue configurazioni in modo che tu possa ripristinare un
configurazione quando si verifica un problema. Per impostazione predefinita, la revisione di un proxy API viene
vengono incrementati ogni volta che importi un proxy API mediante l'API Importa un proxy API. Se
non vuoi incrementare la revisione di un proxy API, utilizza il
API di revisione proxy API. Se utilizzi Maven per il deployment, usa clean
o
update
, come descritto nel plug-in Maven
file Leggimi.
Ad esempio, puoi chiamare il metodo GET
sulla revisione 1 del proxy API per avere una visualizzazione dettagliata.
curl -u EMAIL:PASSWORD -H "Accept:application/json" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1
Esempio di risposta
{ "configurationVersion" : { "majorVersion" : 4, "minorVersion" : 0 }, "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}", "createdAt" : 1343178905169, "createdBy" : "andrew@apigee.com", "lastModifiedAt" : 1343178905169, "lastModifiedBy" : "andrew@apigee.com", "name" : "weatherapi", "policies" : [ ], "proxyEndpoints" : [ ], "resources" : [ ], "revision" : "1", "targetEndpoints" : [ ], "targetServers" : [ ], "type" : "Application" }
Questi elementi di configurazione del proxy API sono documentati in dettaglio nella documentazione di riferimento sulla configurazione del proxy API.
Il deployment di un'API in un ambiente
Una volta configurato il proxy API per ricevere e inoltrare correttamente le richieste, puoi eseguirne il deployment
in uno o più ambienti. In genere, esegui l'iterazione dei proxy API in test
e poi, quando è tutto pronto,
promuovi la revisione del proxy API a prod
. Spesso, scoprirai che ci sono molti altri
revisioni di un proxy API nell'ambiente di test, principalmente perché si farà molto meno
iterazione nell'ambiente di produzione.
Un proxy API non può essere richiamato finché non ne viene eseguito il deployment in un ambiente. Dopo aver ottenuto
ha eseguito il deployment della revisione del proxy API in produzione, puoi pubblicare l'URL prod
in
sviluppatori.
Come elencare gli ambienti
Ogni organizzazione in Apigee Edge dispone di almeno due ambienti: test
e prod
. La
una distinzione è arbitraria. L'obiettivo è fornirti un'area per verificare che il tuo proxy API
funzioni correttamente prima di renderlo disponibile a sviluppatori esterni.
Ogni ambiente non è altro che un indirizzo di rete, che ti permette di isolare il traffico tra I proxy API su cui stai lavorando e quelli a cui le app possono accedere in fase di runtime.
Inoltre, gli ambienti assicurano la segregazione di dati e risorse. Ad esempio, puoi impostare diverse cache in fase di test e di produzione, a cui è possibile accedere solo tramite proxy API eseguiti in quel completamente gestito di Google Cloud.
Visualizza gli ambienti in un organizzazione
curl -u EMAIL:PASSWORD \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments
Esempio di risposta
[ "test", "prod" ]
Esplora i deployment
Un deployment è la revisione di un proxy API di cui è stato eseguito il deployment in un ambiente. Un'API
il proxy in stato Deployment eseguito sia accessibile sulla rete, agli indirizzi definiti
<VirtualHost>
per quell'ambiente.
Deployment dei proxy API
I proxy API non possono essere richiamati fino a quando non ne viene eseguito il deployment. I servizi API espongono le API RESTful che forniscono il controllo sul processo di deployment.
È possibile eseguire il deployment in un ambiente di una sola revisione alla volta di un proxy API. Pertanto, occorre annullare il deployment della revisione di cui è stato eseguito il deployment. Puoi controllare se viene eseguito il deployment del nuovo bundle o se sovrascriva quella esistente.
Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
Annulla prima il deployment della revisione esistente. Specifica il nome dell'ambiente e il numero di revisione il proxy API di cui vuoi annullare il deployment:
curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \ -u EMAIL:PASSWORD
quindi esegui il deployment della nuova revisione. La nuova revisione del proxy API deve già esistere:
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \ -u EMAIL:PASSWORD
Deployment senza interruzioni (nessun tempo di inattività)
Per ridurre al minimo il rischio di tempi di inattività durante il deployment, utilizza il parametro override
sul metodo di deployment e impostalo su true
.
Non puoi eseguire il deployment di una revisione di un proxy API su un'altra. Il primo deve essere sempre
di cui è stato annullato il deployment. Se imposti override
su true
, indichi che una revisione
di un proxy API deve essere implementato nella revisione attualmente sottoposta a deployment. Il risultato è che
la sequenza di deployment viene invertita: viene eseguito il deployment della nuova revisione
completato, viene annullato il deployment della revisione di cui è già stato eseguito il deployment.
Nell'esempio seguente, il valore override
viene impostato passandolo come parametro del modulo:
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments" \ -d "override=true" \ -u EMAIL:PASSWORD
Puoi ottimizzare ulteriormente il deployment impostando il parametro delay
. La
Il parametro delay
specifica un intervallo di tempo, in secondi, prima del quale il parametro
senza il deployment della revisione. L'effetto è che le transazioni in corso hanno un intervallo di tempo
che devono essere completati prima che venga annullato il deployment del proxy API che elabora la transazione. La persona che segue è
cosa succede con override=true
e il set di parametri delay
:
- La revisione 1 sta gestendo le richieste.
- Il deployment della revisione 2 è in corso in parallelo.
- Una volta completato il deployment della revisione 2, il nuovo traffico viene inviato alla revisione 2. Nessun nuovo traffico è inviate alla Revisione 1.
- Tuttavia, la revisione 1 potrebbe ancora elaborare transazioni esistenti. Impostando il parametro
delay
(ad esempio 15 secondi), assegni alla Revisione 1 15 secondi per terminare l'elaborazione delle transazioni esistenti. - Dopo l'intervallo di ritardo, viene annullato il deployment della revisione 1.
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments?delay=15" \ -d "override=true" \ -u EMAIL:PASSWORD
Parametro di ricerca | Descrizione |
---|---|
override |
Il valore predefinito è Impostalo su |
delay |
Per consentire il completamento dell'elaborazione delle transazioni sulla revisione esistente prima che sia
non implementato ed elimina la possibilità di Il valore predefinito è 0 (zero) secondi. Quando |
Quando override=true
viene utilizzato insieme a delay
, HTTP 5XX
durante il deployment
possono essere eliminate. Il motivo è che entrambe le revisioni del proxy API
il deployment della revisione precedente è stato annullato dopo il ritardo.
Visualizza tutti i deployment di un'API Revisione
A volte è necessario recuperare un elenco di tutte le revisioni di un'API attualmente di cui è stato eseguito il deployment proxy.
curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1/deployments \ -u EMAIL:PASSWORD
{ "aPIProxy" : "weatherapi", "environment" : [ { "configuration" : { "basePath" : "", "steps" : [ ] }, "name" : "test", "server" : [ { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "90096dd1-1019-406b-9f42-fbb80cd01200" }, { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "7d6e2eb1-581a-4db0-8045-20d9c3306549" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "1619e2d7-c822-45e0-9f97-63882fb6a805" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "8a5f3d5f-46f8-4e99-b4cc-955875c8a8c8" } ], "state" : "deployed" } ], "name" : "1", "organization" : "org_name" }
La risposta precedente contiene molte proprietà specifiche per l'infrastruttura interna di Apigee perimetrali. A meno che non utilizzi Apigee Edge on-premise, non puoi modificare queste impostazioni.
Le proprietà importanti contenute nella risposta sono organization
,
environment
, aPIProxy
, name
e state
. Di
esaminando questi valori delle proprietà, puoi confermare che una revisione specifica di un proxy API sia
di cui è stato eseguito il deployment in un ambiente.
Visualizza tutti i deployment nel ambiente di test
Puoi anche recuperare lo stato del deployment per un ambiente specifico (inclusa la revisione) numero di proxy API attualmente di cui è stato eseguito il deployment) mediante la chiamata seguente:
curl -u EMAIL:PASSWORD https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/test/deployments
Viene restituito lo stesso risultato riportato sopra per ogni API di cui è stato eseguito il deployment nell'ambiente di test.
Visualizza tutti i deployment in organizzazione
Per recuperare un elenco di tutte le revisioni di cui è stato eseguito il deployment di tutti i proxy API in tutti gli ambienti, utilizza il seguente metodo API:
curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/deployments \ -u EMAIL:PASSWORD
Questo restituisce lo stesso risultato riportato sopra per tutti i proxy API di cui è stato eseguito il deployment in tutti gli ambienti.
Poiché l'API è RESTful, puoi semplicemente utilizzare il metodo POST
, insieme a un file JSON o XML
della stessa risorsa per creare un proxy API.
Viene generato un profilo per il proxy API. La rappresentazione predefinita di un proxy API è in
JSON (JavaScript Object Notation). Di seguito è riportata la risposta JSON predefinita alla richiesta POST
di cui sopra.
che ha creato un proxy API chiamato weatherapi
. Una descrizione di ogni elemento del profilo
che segue:
{ "configurationVersion" : { "majorVersion" : 4, "minorVersion" : 0 }, "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}", "createdAt" : 1357172145444, "createdBy" : "you@yourcompany.com", "displayName" : "weatherapi", "lastModifiedAt" : 1357172145444, "lastModifiedBy" : "you@yourcompany.com", "name" : "weatherapi", "policies" : [ ], "proxyEndpoints" : [ ], "resources" : [ ], "revision" : "1", "targetEndpoints" : [ ], "targetServers" : [ ], "type" : "Application" }
Il profilo proxy API generato dimostra la struttura completa di un'API proxy:
APIProxy revision
: l'iterazione numerata in sequenza del proxy API completamente gestita dai servizi APIAPIProxy name
: il nome univoco del proxy APIConfigurationVersion
: versione dei servizi API a cui il proxy API la configurazione sia conformeCreatedAt
: ora in cui è stato generato il proxy API, formattato in tempo UNIXCreatedBy
: indirizzo email dell'utente Apigee Edge che ha creato l'API proxyDisplayName
: un nome semplice per il proxy APILastModifiedAt
: ora in cui è stato generato il proxy API, formattato in UNIX oraLastModifiedBy
: indirizzo email dell'utente Apigee Edge che ha creato l'API proxyPolicies
: un elenco di criteri che sono stati aggiunti a questo proxy APIProxyEndpoints
: un elenco di ProxyEndpoint denominatiResources
: un elenco di risorse (JavaScript, Python, Java, Hadoop) disponibili per da eseguire in questo proxy APITargetServers
: un elenco di TargetServer denominati (che possono essere creati utilizzando API di gestione dei dati), utilizzato in configurazioni avanzate ai fini del bilanciamento del caricoTargetEndpoints
: un elenco di TargetEndpoint denominati
Tieni presente che molti degli elementi della configurazione del proxy API creati utilizzando POST
semplice
sopra sono vuoti. Nei seguenti argomenti, imparerai ad aggiungere e configurare la chiave
componenti di un proxy API.
Puoi trovare informazioni su questi elementi di configurazione anche nel Riferimento alla configurazione del proxy API.
Creazione di script sull'API
La sezione Utilizzo dei proxy API di esempio, disponibili su GitHub forniscono script shell che aggregano lo strumento di deployment di Apigee. Se per qualche motivo non puoi usare lo strumento di deployment Python, puoi chiamare direttamente l'API. Entrambi gli approcci illustrato negli script di esempio riportati di seguito.
Wrapping dello strumento di deployment
Innanzitutto, assicurati che lo strumento di deployment Python sia disponibili nel tuo ambiente locale.
quindi crea un file in cui inserire le tue credenziali. Gli script di deployment che scrivi importeranno
queste impostazioni, aiutandoti a gestire centralmente le credenziali del tuo account. Nell'API
Esempio di piattaforma, questo file è denominato setenv.sh
.
#!/bin/bash org="Your ORG on enterprise.apigee.com" username="Your USERNAME on enterprise.apigee.com" # While testing, it's not necessary to change the setting below env="test" # Change the value below only if you have an on-premise deployment url="https://api.enterprise.apigee.com" # Change the value below only if you have a custom domain api_domain="apigee.net" export org=$org export username=$username export env=$env export url=$url export api_domain=$api_domain
Il file riportato sopra rende disponibili tutte le tue impostazioni per gli script shell che aggregano il deployment lo strumento a riga di comando gcloud.
Ora crea uno script shell che importi queste impostazioni e le utilizza per chiamare lo strumento di deployment. (Per un esempio, vedi Esempi di piattaforme API Apigee.)
#!/bin/bash source path/to/setenv.sh echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:" read -s password echo Deploying $proxy to $env on $url using $username and $org path/to/deploy.py -n {api_name} -u $username:$password -o $org -h $url -e $env -p / -d path/to/apiproxy
Per semplificarti la vita, crea anche uno script per richiamare e testare l'API, che segue:
#!/bin/bash
echo Using org and environment configured in /setup/setenv.sh
source /path/to/setenv.sh
set -x
curl "http://$org-$env.apigee.net/{api_basepath}"
Richiamo diretto dell'API
Può essere utile scrivere semplici script shell che automatizzano il processo di caricamento deployment dei proxy API.
Lo script riportato di seguito richiama direttamente l'API di gestione. Viene annullato il deployment della revisione esistente
il proxy API che stai aggiornando crea un file ZIP dalla directory /apiproxy
contenente i file di configurazione del proxy e poi carica, importa ed esegue il deployment
configurazione.
#!/bin/bash #This sets the name of the API proxy and the basepath where the API will be available api=api source /path/to/setenv.sh echo Delete the DS_store file on OSX echo find . -name .DS_Store -print0 | xargs -0 rm -rf find . -name .DS_Store -print0 | xargs -0 rm -rf echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:" read -s password echo Undeploy and delete the previous revision # Note that you need to explicitly update the revision to be undeployed. # One benefit of the Python deploy tool is that it manages this for you. curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X DELETE curl -k -u $username:$password -X DELETE "$url/v1/o/$org/apis/$api/revisions/1" rm -rf $api.zip echo Create the API proxy bundle and deploy zip -r $api.zip apiproxy echo Import the new revision to $env environment curl -k -v -u $username:$password "$url/v1/o/$org/apis?action=import&name=$api" -T $api.zip -H "Content-Type: application/octet-stream" -X POST echo Deploy the new revision to $env environment curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X POST