Configurazione e deployment di ambienti

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Un ambiente è un contesto di esecuzione di runtime per i proxy API e i flussi condivisi di cui vuoi eseguire il deployment. Devi eseguire il deployment dei proxy API e dei flussi condivisi in uno o più ambienti prima che sia possibile accedervi per i test. Per saperne di più sugli ambienti, vedi Informazioni sugli ambienti e sui gruppi di ambienti.

Configura ed esegui il deployment degli ambienti come descritto nelle sezioni seguenti. Vedi anche Gestire cartelle e file in un'area di lavoro Apigee.

Configurazione di un ambiente

Prima di eseguire il deployment di un ambiente, devi configurarlo in modo da identificare i proxy API e i flussi condivisi di cui vuoi eseguire il deployment e configurare hook di flusso condivisi o server di destinazione in base alle esigenze.

Per configurare un ambiente, crea l'ambiente e modifica la configurazione definita nella tabella seguente.

Configurazione Descrizione
Mascherine di debug (debugmasks.json) Definisci le configurazioni delle maschere per mascherare dati specifici nelle sessioni di traccia e debug.
Deployment (deployments.json) Definisci i proxy API e i flussi condivisi nel deployment.
hook di flusso (flowhooks.json) Collega flussi condivisi agli hook di flusso in modo che vengano eseguiti nella stessa posizione per tutti i proxy API di cui è stato eseguito il deployment nell'ambiente.
Server di destinazione (targetservers.json) Disaccoppia gli endpoint concreti dagli endpoint di destinazione per supportare il bilanciamento del carico e il failover in più istanze del server di backend.
Negozi principali (keystores.json) Aggiungere il supporto TLS agli endpoint di destinazione e ai server di destinazione.

Inoltre, se utilizzi criteri che richiedono risorse, puoi gestire le risorse a livello di ambiente in base alle necessità.

Creazione di un ambiente

Per creare un ambiente in Apigee in Cloud Code:

  1. Esegui una delle seguenti azioni:

    • Posiziona il cursore sulla cartella environments nella sezione Apigee e fai clic su Icona Crea.

      + viene visualizzato quando posizioni il cursore sulla cartella degli ambienti

    • Seleziona Visualizza > Tavolozza dei comandi per aprire la tavolozza dei comandi e seleziona Cloud Code: Crea ambiente Apigee.

    Viene visualizzata la procedura guidata di creazione dell'ambiente.

  2. Inserisci un nome per l'ambiente e premi Invio.

L'ambiente viene aggiunto alla cartella environments nella sezione Apigee, come mostrato nella figura seguente.

Cartella degli ambienti con file deploy.json, flowhooks.json e targetservers.json

Configura l'ambiente come descritto nelle sezioni seguenti.

Configurazione delle maschere di debug (debugmask.json)

Apigee consente di definire configurazioni di maschere per mascherare dati specifici nelle sessioni di traccia e debug. Quando i dati sono mascherati, vengono sostituiti da asterischi nell'output della traccia. Ad esempio:

<description>**********</description>

Per ulteriori informazioni, consulta l'articolo Mascheramento di dati sensibili.

Per configurare le maschere di debug, aggiorna il file debugmask.json modificando il file direttamente.

Di seguito è riportato un esempio della struttura di base di una configurazione di maschera in formato JSON. Per ulteriori informazioni sui campi di configurazione della maschera mostrati nell'esempio, consulta DebugMask.

{
  "namespaces": {
    "myco": "https://example.com"
  },
  "requestXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "responseXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "faultXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "requestJSONPaths": [
    "$.store.book[].author"
  ],
  "responseJSONPaths": [
    "$.store.book[].author"
  ],
  "faultJSONPaths": [
    "$.store.book[*].author"
  ],
  "variables": [
    "request.header.user-agent",
    "request.formparam.password"
  ]
}

Configurazione dei deployment (deployments.json)

Configura i proxy API e i flussi condivisi che vuoi includere nel deployment.

Per configurare i deployment, aggiorna il file deployments.json utilizzando la configurazione guidata (descritta di seguito) o modificando il file direttamente.

Per configurare i deployment utilizzando la configurazione guidata:

  1. Posiziona il cursore sul file deployments.json per l'ambiente e fai clic su Icona della procedura guidata.

    l&#39;icona delle impostazioni viene visualizzata quando posizioni il cursore sulla cartella Deployment.json

  2. Segui la procedura guidata di configurazione per selezionare i deployment e compilare automaticamente i campi nel file deployments.json.
    Il file deployments.json viene aperto nell'editor.

  3. Modifica la configurazione, se necessario.

  4. Seleziona File > Salva o ⌘S per salvare le modifiche.

L'esempio seguente configura il deployment in modo da includere il proxy API helloworld e i flussi condivisi mysharedflow e hw-sharedflow:

{
  "proxies" : [
     "helloworld"
  ],
  "sharedflows" : [
     "mysharedflow",
     "hw-sharedflow"
  ]
}

Configurazione degli account di servizio con deployment proxy e di flussi condivisi

I proxy API che dipendono da un servizio Google come backend potrebbero richiedere l'associazione di un account di servizio Google Cloud al deployment. Vedi Utilizzo dell'autenticazione Google.

Quando modifichi il file deployments.json, puoi associare il proxy API o il flusso condiviso a un account di servizio Google Cloud. Ad esempio:

{
  "name": "proxy-name",
  "serviceAccount": "associated-service-account"
}

L'esempio seguente mostra una configurazione di deployment in cui gli account di servizio sono associati al proxy APIhelloworld e al flusso condiviso mysharedflow, tuttavia il proxy healthcheck e il flusso condiviso hw-sharedflow non sono associati a un account di servizio:

{
  "proxies": [
    {
      "name": "helloworld",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "healthcheck"
  ],
  "sharedflows": [
    {
      "name": "mysharedflow",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "hw-sharedflow"
  ]
}

Scopri di più su come configurare l'emulatore Apigee per testare le funzionalità di autenticazione degli account di servizio nel proxy API.

Collegamento di flussi condivisi mediante hook di flusso (flowhooks.json)

Con un hook del flusso, puoi collegare un flusso condiviso in modo che venga eseguito nella stessa posizione per tutti i proxy API di cui è stato eseguito il deployment in un ambiente specifico. In questo modo ottieni una sequenza di logica, implementata e di cui è stato eseguito il deployment separatamente, che non fa parte del codice di implementazione di un proxy API. In particolare, puoi collegare un flusso condiviso nelle seguenti posizioni nel flusso proxy API:

  • Prima dell'esecuzione di un endpoint proxy API (PreProxyFlowHook)
  • Dopo l'esecuzione dell'endpoint proxy API e subito prima che la risposta venga inviata al client (PostProxyFlowHook)
  • Prima dell'esecuzione di un endpoint di destinazione (PreTargetFlowHook)
  • Dopo l'esecuzione della risposta target (PostTargetFlowHook)

Per saperne di più sugli hook di flusso, consulta Collegare flussi condivisi utilizzando gli hook di flusso.

Per allegare flussi condivisi utilizzando hook di flusso, aggiorna il file flowhooks.json utilizzando la configurazione guidata (descritta di seguito) o modificando il file direttamente.

Per configurare i deployment utilizzando la configurazione guidata:

  1. Posiziona il cursore sul file flowhooks.json per l'ambiente e fai clic su Icona della procedura guidata.
  2. Segui la procedura guidata di configurazione per selezionare i flussi condivisi da allegare in posizioni specifiche nel flusso proxy API e compilare automaticamente i campi nel file flowhooks.json.
    Il file flowhooks.json viene aperto nell'editor.
  3. Modifica la configurazione, se necessario.
  4. Seleziona File > Salva o ⌘S per salvare le modifiche.

Nell'esempio seguente viene collegato mysharedflow a PreProxyFlowHook, in modo che venga eseguito prima dell'esecuzione di un endpoint proxy API:

{
  "PreProxyFlowHook": {
    "continueOnError": true,
    "sharedFlow": "mysharedflow",
    "description": "Shared enforced before a proxy endpoint executes."
  }  
}

Configurazione dei server di destinazione (targetservers.json)

I server di destinazione (TargetServers) disaccoppiano gli URL di endpoint concreti dalle configurazioni degli endpoint di destinazione (TargetEndpoint). Anziché definire un URL concreto nella configurazione, puoi configurare uno o più TargetServer denominati. Quindi, fare riferimento a ogni TargetServer per nome in una HTTPConnection TargetEndpoint.

Per ulteriori informazioni sui server di destinazione, consulta i seguenti argomenti:

Per configurare i server di destinazione, aggiorna il file targetservers.json utilizzando la configurazione guidata (descritta di seguito) o modificando direttamente il file. Per una descrizione dei campi nel file targetservers.json, consulta Risorsa: TargetServer.

Per configurare i server di destinazione utilizzando la configurazione guidata:

  1. Posiziona il cursore sul file targetservers.json per l'ambiente e fai clic su Icona della procedura guidata.
  2. Segui la procedura guidata di configurazione per configurare il server di destinazione e compilare automaticamente i campi nel file targetservers.json. Il file targetservers.json viene aperto nell'editor.
  3. Modifica la configurazione, se necessario.
  4. Seleziona File > Salva o ⌘S per salvare le modifiche.

Nell'esempio seguente viene aggiunto un nuovo server di destinazione nell'ambiente:

[
  {
    "enabled": true,
    "description": "My first target server",
    "name": "mytargetserver",
    "host": "localhost",
    "port": 80
  }
]

L'esempio seguente configura un server di destinazione con TLS reciproco utilizzando gli keystores:

[
    {
        "name": "mtlsserver",
        "host": "mytargetserver.mydomain",
        "port": 443,
        "enabled": true,
        "protocol": "HTTP",
        "tlsInfo": {
            "enabled": true,
            "clientAuthEnabled": true,
            "keyStore": "mykeystore",
            "keyAlias": "mykeyandcert",
            "trustStore": "mytruststore"
        }
    }
]

Configurazione degli archivi chiavi (keystores.json)

Gli archivi chiavi definiscono i repository di certificati di sicurezza utilizzati per la crittografia TLS negli endpoint e nei server di destinazione.

Per ulteriori informazioni sulla configurazione TLS, vedi Opzioni per la configurazione di TLS.

Per configurare gli archivi chiavi:

  1. Apri il file keystores.json per l'ambiente nell'editor. Il file è costituito da due elementi principali.
    • stores: una mappa del nome dell'archivio chiavi e degli alias aggiunti.
    • references: una mappa di tutti i nomi di riferimento degli archivi chiavi e i nomi degli archivi chiavi associati.
  2. Modifica la configurazione, se necessario.
  3. Seleziona File > Salva o ⌘S per salvare le modifiche.

L'esempio seguente mostra un archivio chiavi mykeystore con due alias, mycert-alias e mykeycert-alias:

{
    "stores": {
      "mykeystore": {
        "my-cert-alias": {
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        },
        "my-keycert-alias": {
          "key": "/Users/jdoe/testkeys/key1.pem",
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        }
      }
    }
  }

Deployment di un ambiente

Esegui il deployment dei proxy API e dei flussi condivisi configurati per un ambiente in modo che sia possibile accedervi per i test.

Per eseguire il deployment di un ambiente:

  1. Nella sezione Apigee, posiziona il cursore sulla cartella dell'ambiente di cui vuoi eseguire il deployment.
  2. Fai clic su Icona di deployment.

    L&#39;icona di deployment viene visualizzata quando posizioni il cursore sulla cartella dell&#39;ambiente di sviluppo

  3. Se sono in esecuzione più container per l'emulatore Apigee, seleziona il container in cui vuoi eseguire il deployment dell'ambiente.
  4. Seleziona il bundle di test da esportare con il deployment oppure Esegui il deployment senza un bundle di test.

    Richiesta di esportare il bundle di test

    Puoi esportare le risorse di test in un secondo momento, come descritto in Esportazione delle risorse di test nell'emulatore Apigee.

Viene eseguito il deployment dell'ambiente. Nella scheda Output vengono visualizzate le seguenti informazioni:

Environment dev deployed successfully with revision 7

Le applicazioni di cui è stato eseguito il deployment vengono visualizzate nell'emulatore Apigee, come mostrato di seguito.

Emulatore Apigee che mostra un&#39;applicazione helloworld di cui è stato eseguito il deployment e risorse di test attive

Passaggi successivi

A questo punto è il momento di testare l'API.