Gestione risorse

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Comprendi e gestisci le risorse, come descritto nelle sezioni seguenti.

Informazioni sulle risorse

Molti tipi di criteri si basano sulle risorse. Le risorse sono i file che implementano il codice o la configurazione che deve essere eseguita da un criterio quando è collegato a un proxy API. In alcuni casi, come con JavaScript e JavaCallout, un criterio definisce semplicemente un punto di collegamento in un proxy API in cui deve essere eseguito del codice. Il criterio JavaScript o JavaCallout è un puntatore a una risorsa.

Il seguente codice JavaScript di esempio imposta il percorso di richiesta HTTP sul valore della variabile proxy.basepath.

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

Tipi di risorse

La tabella seguente riassume i tipi di risorse:

Tipo di risorsa Descrizione
JAR (java) classi Java in un file JAR a cui fanno riferimento i criteri di JavaCallout.
JavaScript (js) JavaScript a cui fanno riferimento le norme relative a JavaScript.
JavaScript (jsc) JavaScript compilato a cui si fa riferimento nelle norme di JavaScript.
Hosted target (hosted) File Node.js di cui eseguire il deployment nelle destinazioni ospitate. Puoi eseguire il deployment di Node.js come applicazioni di destinazione del backend perimetrale.
Node (node) File Node.js, inclusi il file Node.js principale, i file di origine correlati e le dipendenze dei moduli.
Python (py) Script Python a cui fanno riferimento i criteri PythonScript. Le risorse devono essere implementate in "Python puro" (solo nel linguaggio Python).
WSDL (wsdl) File WSDL a cui fanno riferimento i criteri SOAPMessageValidation.
XSD (xsd) Schemi XML a cui fanno riferimento i criteri di SOAPMessageValidation.
XSL Transformations (xsl) Trasformazioni shard a cui fanno riferimento i criteri di XSLTransform.

Dove sono archiviate le risorse

Le risorse possono essere archiviate in una delle tre posizioni seguenti:

  • Revisione proxy API: le risorse sono disponibili solo per le revisioni del proxy API in cui sono incluse. Ad esempio, potresti includere una risorsa JavaScript con la revisione 1 di un proxy API, quindi modificare l'implementazione in modo da utilizzare uno script Python nella revisione 2 del proxy. La revisione 1 ha accesso solo alla risorsa JavaScript, mentre la revisione 2 ha accesso solo alla risorsa Python.
  • Ambiente: se archiviate in un ambiente (ad esempio test o prod), le risorse sono disponibili per qualsiasi proxy API di cui è stato eseguito il deployment nello stesso ambiente.
  • Organizzazione: se archiviate in un'organizzazione, le risorse sono disponibili per qualsiasi proxy API di cui è stato eseguito il deployment in qualsiasi ambiente.

I repository sono disponibili ai seguenti URI, come descritto dall'API Resource files e successivamente in Gestire le risorse usando l'API:

  • Organizzazione: /organizations/{org}/resourcefiles
  • Ambiente: /organizations/{org}/environments/{env}/resourcefiles
  • Proxy API: /organizations/{org}/apis/{api}/revisions/{rev}/resources

La seguente tabella mostra i metodi che puoi utilizzare per creare, aggiornare ed eliminare le risorse per ogni repository:

Repository Crea Visualizza Aggiorna Elimina
API UI API UI API UI API UI
Revisione proxy API
Ambiente
Organizzazione

Ad esempio, tutti i file JavaScript disponibili per l'ambiente test sono archiviati nel seguente repository e sono disponibili per qualsiasi proxy API in esecuzione nell'ambiente test:

/organizations/{org}/environments/test/resourcefiles/jsc

Risoluzione dei nomi delle risorse

Edge risolve i nomi delle risorse dall'ambito più specifico a quello più generale. I nomi delle risorse vengono risolti "più avanti nella catena", dal livello di revisione del proxy API, al livello di ambiente, al livello di organizzazione (solo Edge).

Supponiamo che tu abbia completato la stessa risorsa in due repository diversi: la revisione del proxy API e l'ambiente prod.

Prendi in considerazione il proxy API configurato con il seguente criterio:

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

Il riferimento ai criteri non può essere risolto esplicitamente in un repository. La prima risorsa nell'ambito più granulare il cui nome corrisponde a quello nel criterio viene risolta.

Quindi, quando viene eseguito il deployment del proxy API nell'ambiente prod, il criterio verrà risolto nella risorsa pathSetter.js con ambito ambiente.

Una volta eseguito il deployment nell'ambiente test, il criterio verrà risolto nella risorsa con ambito di revisione del proxy API, perché la risorsa con ambito di ambiente si trova nell'ambiente prod, non nell'ambiente test.

Linee guida per le risorse Java

Puoi aggiungere risorse Java compilate come file JAR utilizzando diverse opzioni in curl, ad esempio -T, --data-binary o -F (non l'opzione -d). Ad esempio:

curl "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java" \
  -X POST \
  --data-binary @{jar_file} \
  -H "Content-Type: application/octet-stream" \
  -u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
  -X POST \
  -H "Content-Type: application/octet-stream" \
  -T "{jar_file}" \
  -u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
  -X POST \
  -H "Content-Type: application/multipart/form-data" \
  -F "file=@{jar_file}" \
  -u email:password

Vedi anche:

Linee guida sulle risorse Node.js

Quando fai riferimento a uno script Node.js in un proxy API, devi utilizzare l'elemento <ResourceURL> nella configurazione TargetEndpoint del proxy API, come descritto in Aggiunta di Node.js a un proxy API esistente. Ad esempio:

<ScriptTarget>
    <ResourceURL>node://hello-world.js</ResourceURL>
</ScriptTarget>

Lo script Node.js e tutti i moduli di supporto devono risiedere nell'ambito di revisione del proxy API (nella directory /resources/node del bundle proxy). Nell'editor proxy API, l'aggiunta della risorsa Node.js alla sezione Script consente di eseguire questa operazione. Lo stesso vale per l'utilizzo dell'API (import e aggiornamento) per archiviare la risorsa nell'ambito di revisione del proxy API.

Gestire le risorse tramite l'interfaccia utente

Gestisci le risorse con l'ambito di una revisione del proxy API utilizzando l'interfaccia utente, come descritto nelle sezioni seguenti.

Visualizza le risorse utilizzando l'interfaccia utente

Per visualizzare le risorse limitate all'ambito di una revisione del proxy API:

  1. Accedi ad apigee.com/edge.

  2. Seleziona Sviluppo > Proxy API nella barra di navigazione a sinistra.
  3. Seleziona nell'elenco un proxy API per il quale vuoi creare una risorsa.
    L'editor proxy API si apre e viene visualizzata la scheda Panoramica per impostazione predefinita.
  4. Fai clic sulla scheda Sviluppo.
  5. Se necessario, seleziona la revisione nel menu a discesa Revisione.

    Le risorse interessate dalla revisione del proxy API sono elencate nella sezione Risorse della visualizzazione Navigazione.

Creare una risorsa utilizzando l'interfaccia utente

Per creare risorse con ambito di una revisione del proxy API utilizzando l'interfaccia utente:

  1. Visualizza le risorse limitate all'ambito della revisione del proxy API.
  2. Fai clic su + nella sezione Risorse della visualizzazione Navigazione per aprire la finestra di dialogo Nuova risorsa.
  3. Inserisci quanto segue:
    Campo Descrizione
    Origine Scegli se creare un nuovo file o importarne uno.
    Tipo di file Seleziona un tipo di risorsa dall'elenco a discesa.
    Nome file Nome del file. L'estensione del nome file deve essere valida per il tipo di file selezionato.

Aggiorna una risorsa utilizzando l'UI

Per aggiornare una risorsa limitata a una revisione del proxy API utilizzando l'interfaccia utente:

  1. Visualizza le risorse limitate all'ambito della revisione del proxy API.
  2. Nella visualizzazione Navigazione sotto Risorse, fai clic sulla risorsa che vuoi aggiornare.
    Nota: per i file JAR, posiziona il cursore sulla risorsa che vuoi modificare e fai clic su .
  3. Aggiorna la risorsa in base alle esigenze.
    Nota:dopo aver caricato un nuovo file JAR, fai clic su Aggiorna.

Elimina una risorsa utilizzando l'interfaccia utente

Per eliminare una risorsa con ambito di una revisione del proxy API utilizzando l'interfaccia utente:

  1. Visualizza le risorse limitate all'ambito della revisione del proxy API.
  2. Nella visualizzazione Navigazione in Risorse, posiziona il cursore sulla risorsa che vuoi eliminare per visualizzare il menu delle azioni.
  3. Fai clic su .
  4. Fai clic su Elimina per confermare l'azione.

Gestisci le risorse utilizzando l'API

Gestisci le risorse utilizzando l'API, come descritto nelle sezioni seguenti.

Creare risorse mediante l'API

Crea risorse che hanno come ambito una revisione del proxy API, un ambiente oppure un'organizzazione (solo Edge), come descritto nelle sezioni seguenti.

Crea risorse con ambito a una revisione del proxy API utilizzando l'API

Crea una risorsa con ambito a una revisione del proxy API utilizzando l'API inviando una richiesta POST alla seguente risorsa: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles

Trasmetti le seguenti informazioni nella tua richiesta:

  • Imposta il parametro di query name sul nome della risorsa
  • Imposta il parametro di query type sul tipo di risorsa richiesto
  • trasmetti i contenuti del file di risorse come application/octet-stream o multipart/form-data)

Nell'esempio seguente viene creato un file JavaScript denominato pathSetter.js per la revisione 1 del proxy API helloworld:

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

L'esempio seguente mostra come caricare la risorsa come file dalla tua macchina locale. È importante utilizzare -F per il caricamento binario in curl affinché i file JavaScript con ambito a livello di ambiente o organizzazione siano accessibili dal criterio JavaScript.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Di seguito è riportato un esempio della risposta di entrambe le chiamate API.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

Per ulteriori informazioni, consulta Importare un file di risorse per una revisione del proxy API.

In alternativa, puoi utilizzare l'API Update API di revisione proxy, come indicato di seguito:

  1. Crea il file della risorsa.
  2. Aggiungi il file delle risorse a un pacchetto di configurazione del proxy API.
  3. Carica il bundle utilizzando una delle seguenti API:

Crea risorse con ambito di un ambiente utilizzando l'API

Crea una risorsa JavaScript il cui ambito sia un ambiente utilizzando l'API inviando una richiesta POST alla seguente risorsa: /organizations/{org}/environments/{env}/resourcefiles

Trasmetti le seguenti informazioni nella tua richiesta:

  • Imposta il parametro di query name sul nome della risorsa
  • Imposta il parametro di query type sul tipo di risorsa richiesto
  • trasmetti i contenuti del file di risorse come application/octet-stream o multipart/form-data)

L'esempio seguente mostra come creare una risorsa JavaScript passandone i contenuti nel corpo della richiesta.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

L'esempio seguente mostra come caricare la risorsa come file dalla tua macchina locale. È importante utilizzare -F per il caricamento binario in curl affinché i file JavaScript con ambito a livello di ambiente o organizzazione siano accessibili dal criterio JavaScript.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Di seguito è riportato un esempio della risposta:

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Crea risorse con l'ambito dell'organizzazione utilizzando l'API

Per creare una risorsa il cui ambito è un'organizzazione che utilizza l'API, invia una richiesta POST alla seguente risorsa: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles

Trasmetti le seguenti informazioni nella tua richiesta:

  • Imposta il parametro di query name sul nome della risorsa
  • Imposta il parametro di query type sul tipo di file delle risorse (vedi Tipi di risorse)
  • trasmetti i contenuti del file di risorse come application/octet-stream o multipart/form-data)

Per saperne di più, vedi Importare un file di risorse per un'organizzazione.

Visualizza le risorse utilizzando l'API

Le seguenti sezioni descrivono come visualizzare le risorse utilizzando l'API.

Visualizza tutte le risorse che utilizzano l'API

Utilizzando l'API puoi visualizzare le risorse nell'ambito di una revisione del proxy dell'API, di un ambiente oppure di un'organizzazione.

Ad esempio, per visualizzare le risorse per le risorse limitate all'ambiente utilizzando l'API, invia una richiesta GET alla seguente risorsa: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles

L'esempio seguente elenca tutte le risorse nell'ambiente test:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/{type}" \
  -u email:password

Di seguito è riportato un esempio della risposta.

{
  "resourceFile": [
{
  "name" : "pathSetter.js",
  "type" : "jsc"
}
  ]
}

Visualizzare i contenuti di una risorsa utilizzando l'API

Visualizza il contenuto di una risorsa utilizzando l'API, come descritto nelle sezioni seguenti.

Utilizzando l'API puoi visualizzare le risorse nell'ambito di una revisione del proxy dell'API, di un ambiente oppure di un'organizzazione.

Ad esempio, per visualizzare i contenuti di una risorsa in un ambiente che utilizza l'API, invia una richiesta GET alla seguente risorsa: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/name

Nell'esempio seguente sono elencati i contenuti del file di risorse JavaScript pathSetter.js nell'ambiente test:

curl -X GET https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js" \
  -H "Accept: application/json" \
  -u email:password

Di seguito è riportato un esempio della risposta:

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

Aggiornare le risorse utilizzando l'API

Aggiorna le risorse il cui ambito è costituito da una revisione del proxy API, un ambiente oppure un'organizzazione (solo Edge), come descritto nelle sezioni seguenti.

Aggiorna le risorse con ambito a una revisione del proxy API utilizzando l'API

Aggiorna una risorsa con ambito a una revisione del proxy API utilizzando l'API inviando una richiesta PUT alla seguente risorsa: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

trasmetti i contenuti del file di risorse come application/octet-stream o multipart/form-data)

L'esempio seguente aggiorna la risorsa JavaScript denominata pathSetter per la revisione 1 del proxy API helloworld:

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

L'esempio seguente mostra come aggiornare la risorsa come file dalla tua macchina locale. È importante utilizzare -F per il caricamento binario in curl affinché i file JavaScript con ambito a livello di ambiente o organizzazione siano accessibili dal criterio JavaScript.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Di seguito è riportato un esempio della risposta di entrambe le chiamate API.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

Per ulteriori informazioni, consulta Importare un file di risorse per una revisione del proxy API.

In alternativa, puoi utilizzare l'API Update API di revisione proxy, come indicato di seguito:

  1. Scarica il bundle di configurazione del proxy API utilizzando l'API Export API proxy con le seguenti opzioni:
    • Imposta il parametro di query format su bundle
    • Imposta l'intestazione Accept su application/zip
  2. Aggiorna il file delle risorse nel pacchetto di configurazione del proxy API.
  3. Carica il bundle utilizzando l'API Update API proxy Revision

Aggiorna le risorse il cui ambito è un ambiente utilizzando l'API

Aggiorna una risorsa il cui ambito è un ambiente che utilizza l'API inviando una richiesta PUT alla risorsa seguente: /organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

Trasmetti i contenuti del file di risorse come application/octet-stream o multipart/form-data.

L'esempio seguente mostra come aggiornare una risorsa JavaScript passandone i contenuti nel corpo della richiesta.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

L'esempio seguente mostra come aggiornare il file delle risorse utilizzando un file della macchina locale. È importante utilizzare -F per il caricamento binario in curl affinché i file JavaScript con ambito a livello di ambiente o organizzazione siano accessibili dal criterio JavaScript.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

Di seguito è riportato un esempio della risposta:

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Aggiorna le risorse con ambito all'organizzazione utilizzando l'API

Per aggiornare una risorsa il cui ambito è un'organizzazione che utilizza l'API, invia una richiesta POST alla seguente risorsa: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

trasmetti i contenuti del file di risorse come application/octet-stream o multipart/form-data)

Per ulteriori informazioni, vedi Importare un file di risorse per un'organizzazione.

Elimina le risorse utilizzando l'API

Elimina le risorse il cui ambito è una revisione del proxy API, un ambiente oppure un'organizzazione (solo Edge), come descritto nelle sezioni seguenti.

Elimina le risorse il cui ambito è una revisione del proxy API utilizzando l'API

Per eliminare una risorsa limitata a una revisione del proxy API utilizzando l'API, invia una richiesta DELETE alla seguente risorsa: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

L'esempio seguente elimina il file di risorse JavaScript pathSetter.js dalla revisione 1 del proxy API helloworld:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js" \
  -u email:password
  

Di seguito è riportato un esempio della risposta.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

In alternativa, puoi utilizzare l'API Update API di revisione proxy, come indicato di seguito:

  1. Scarica il bundle di configurazione del proxy API utilizzando l'API Export API proxy con le seguenti opzioni:
    • Imposta il parametro di query format su bundle
    • Imposta l'intestazione Accept su application/zip
  2. Elimina il file delle risorse dal pacchetto di configurazione del proxy API.
  3. Carica il bundle utilizzando l'API Update API proxy Revision

Elimina una risorsa limitata a un ambiente utilizzando l'API

Elimina una risorsa limitata a un ambiente utilizzando l'API, come descritto nelle sezioni seguenti.

Per eliminare una risorsa che ha come ambito un ambiente utilizzando l'API, invia una richiesta DELETE alla seguente risorsa: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

L'esempio seguente elimina il file di risorse JavaScript pathSetter.js dall'ambiente test:

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js" \
  -u email:password

Di seguito è riportato un esempio della risposta.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

Elimina le risorse il cui ambito è l'organizzazione utilizzando l'API (solo Edge)

Per eliminare una risorsa il cui ambito è un'organizzazione che utilizza l'API, invia una richiesta DELETE alla seguente risorsa: https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

Per saperne di più, vedi Eliminare un file di risorse da un'organizzazione.

Accedi alla risorsa

Il modo in cui accedi alla risorsa dipende dal tipo di risorsa. Per saperne di più, consulta la documentazione pertinente sui criteri.

Gli esempi in questa sezione mostrano come creare e gestire una risorsa JavaScript denominata pathSetter.js per fare riferimento alla risorsa in base a criteri di tipo JavaScript.

Per allegare il codice JavaScript a PostFlow della richiesta, crea un criterio denominato PathSetterPolicy.xml che faccia riferimento al file pathSetter.js:

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

Quindi, fai riferimento al criterio nella configurazione dell'endpoint:

<PostFlow>
  <Request>
    <Step><Name>PathSetterPolicy</Name></Step>
  </Request>
<PostFlow>

Per ulteriori informazioni, consulta le norme relative a JavaScript.