Deployment e gestione degli archivi in un ambiente Apigee

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Sviluppa e testa i tuoi proxy API programmabili utilizzando Apigee in VS Code. Quindi, esegui il deployment di un archivio dell'ambiente di configurazione del proxy API nell'ambiente di produzione e test di integrazione Apigee come descritto nelle sezioni seguenti.

Abilitazione del deployment dell'archivio in un ambiente Apigee

Prima di poter eseguire il deployment di un archivio, devi abilitarne il deployment nel tuo ambiente Apigee.

Abilita il deployment dell'archivio come descritto nelle sezioni seguenti.

Interfaccia utente di Apigee

Per abilitare il deployment dell'archivio nel tuo ambiente Apigee, durante la creazione di un ambiente Apigee (al di fuori della procedura guidata di provisioning), seleziona Archivia in Tipo di deployment.

Finestra di dialogo Nuovo ambiente.

API Apigee

Per abilitare il deployment dell'archivio durante la creazione di un ambiente utilizzando l'API, imposta deploymentType su ARCHIVE nel corpo della richiesta.

Ad esempio:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments" \
   -X POST \
   -H "Authorization: Bearer $TOKEN" \
   -H "Content-type: application/json" \
   -d
   '{
      "name": "integration-test",
      "description": "Integration test environment",
      "displayName" : "Integration test",
      "deploymentType" : "ARCHIVE"
   }'

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

Di seguito è riportato un esempio della risposta:

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "IN_PROGRESS"
  }
}

Puoi controllare lo stato dell'operazione. Ad esempio:

curl https://apigee.googleapis.com/v1/organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7 /
   -H "Authorization: Bearer $TOKEN"

Di seguito è riportato un esempio della risposta. Tieni presente che lo stato dell'operazione è FINISHED e lo stato dell'ambiente è impostato su ACTIVE.

{
  "name": "organizations/$ORG/operations/11b1ad1c-2371-473d-bcd4-f621f8d98ef7",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
    "operationType": "INSERT",
    "targetResourceName": "organizations/$ORG/environments/integration-test",
    "state": "FINISHED"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.apigee.v1.Environment",
    "name": "integration-test",
    "description": "Integration test environment",
    "createdAt": "1615553880084",
    "lastModifiedAt": "1615553881911",
    "displayName": "Integration test",
    "state": "ACTIVE",
    "deploymentType": "ARCHIVE"
  }
}

Per ulteriori informazioni sull'API, consulta Creare l'API degli ambienti.

Deployment di un archivio in un ambiente Apigee

Per eseguire il deployment di un archivio in un ambiente Apigee, utilizza il seguente comando gcloud:

gcloud beta apigee archives deploy \
    --environment=$ENV \
    [--organization=$ORG] \
    [--source=$SOURCE] \
    [--labels $KEY=$VALUE[,$KEY2=$VALUE2,$KEY3=$VALUE3,...]]

Devi specificare l'ambiente Apigee in cui vuoi eseguire il deployment dell'archivio utilizzando il flag --environment. L'ambiente Apigee deve essere abilitato per i deployment di archiviazione. Per ulteriori informazioni, consulta gcloud beta apigee orders deploy.

Per impostazione predefinita, viene eseguito il deployment dell'archivio:

  • All'organizzazione associata al progetto attivo attualmente configurato per gcloud.

    Per visualizzare la configurazione attuale di gcloud, esegui gcloud config list. Per specificare l'organizzazione, utilizza il flag --organization.

  • Dalla directory di lavoro attuale.
    Se la directory root src/main/apigee dell'archivio si trova in una posizione diversa dalla directory di lavoro corrente, usa il flag --source per specificare la posizione della directory root dell'archivio. Vedi anche Informazioni sulla struttura di un'area di lavoro Apigee.

Facoltativamente, puoi aggiungere fino a 64 coppie chiave/valore di etichetta personalizzate a un deployment in archivio utilizzando il flag --labels. Ad esempio, potresti voler etichettare un archivio con un numero build. Le etichette verranno visualizzate quando elenchi i deployment di archiviazione. I valori delle chiavi devono rispettare le seguenti linee guida:

  • Lunghezza massima di 63 caratteri
  • Dimensione massima di 128 byte
  • Codifica UTF-8
  • Rispettare la seguente espressione regolare compatibile con Perl (PCRE): [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}

Dietro le quinte, il comando gcloud esegue i seguenti passaggi durante il deployment in Apigee su Google Cloud:

  1. Crea un file ZIP della directory dell'area di lavoro Apigee src/main/apigee. Per maggiori informazioni, consulta Informazioni sulla struttura di un'area di lavoro Apigee.
  2. Esegue il deployment dell'archivio in Apigee su Google Cloud, come segue:
    1. Genera un URL firmato per il bucket Google Cloud Storage nel progetto associato all'organizzazione Apigee attuale utilizzando l'API generateUploadUrl.
    2. Carica il file ZIP di archivio nel bucket Cloud Storage utilizzando l'URL firmato.
    3. Esegue il deployment dell'archivio attualmente archiviato nel bucket Cloud Storage in Apigee su Google Cloud. utilizzando l'API Archive Deployments.

Richieste di esempio

L'esempio seguente crea un archivio ZIP di src/main/apigee nella directory attuale e ne esegue il deployment nell'ambiente Apigee specificato:

gcloud beta apigee archives deploy --environment=$ENV

L'esempio seguente mostra come specificare un'organizzazione non associata al progetto attivo attualmente configurato per gcloud:

gcloud beta apigee archives deploy --environment=$ENV --organization=$ORG

L'esempio seguente crea un archivio ZIP della directory src/main/apigee in myarchive e ne esegue il deployment nell'ambiente Apigee specificato:

gcloud beta apigee archives deploy --environment=$ENV --source=/myarchive

Nell'esempio seguente vengono aggiunte le etichette status e build_id al deployment dell'archivio:

gcloud beta apigee archives deploy --environment=$ENV --labels=status=released,build=210315

Esempio di risposta

Di seguito è riportato un esempio della risposta:

Using Apigee organization 'myorg'
Waiting for operation [b64c2665-b5ac-43cc-9e2d-232e8895c2ed] to complete...done.

Controllo dello stato di deployment dell'archivio in corso...

Per controllare lo stato del deployment dell'archivio, utilizza il comando gcloud alpha apigee Operations.

L'esempio seguente mostra che lo stato del deployment dell'archivio per l'operazione con ID revisione 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c è IN_PROGRESS.

gcloud alpha apigee operations describe b64c2665-b5ac-43cc-9e2d-232e8895c2ed

Di seguito è riportato un esempio della risposta. Tieni presente che il campo state è impostato su IN_PROGRESS.

Using Apigee organization 'myorg'
done: true
metadata:
  '@type': type.googleapis.com/google.cloud.apigee.v1.OperationMetadata
  operationType: INSERT
  state: IN_PROGRESS
  targetResourceName: uri
name: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
organization: myorg
response:
  '@type': type.googleapis.com/google.cloud.apigee.v1.CanaryEvaluation
  control: 1-5-0-20210319-071117-ghq74
  endTime: '2021-03-20T06:15:44.329363950Z'
  metricLabels:
    env: test
    location: us-central1
  name: uri
  startTime: '2021-03-20T06:14:44.306534584Z'
  treatment: 1-5-0-20210319-190954-if0wk
  verdict: NONE
uuid: b64c2665-b5ac-43cc-9e2d-232e8895c2ed

Al termine dell'operazione, state viene impostato su FINISHED.

Elenco di tutti i deployment di archiviazione in un ambiente

Elenca tutti i deployment di archiviazione in un ambiente, come descritto nelle sezioni seguenti.

gcloud

Per elencare tutti i deployment di archiviazione in Apigee su Google Cloud, utilizza il seguente comando gcloud:

gcloud beta apigee archives list --environment=$ENV

Devi specificare l'ambiente Apigee in cui vuoi visualizzare i deployment di archiviazione utilizzando il flag --environment. L'ambiente Apigee deve essere in stato Visualizzazione dei dettagli per un deployment di archiviazione. Per ulteriori informazioni, consulta gcloud beta apigeeapigee list.

Di seguito è riportato un esempio della risposta:

Using Apigee organization 'myorg'
ARCHIVE ID                        ENVIRONMENT   DEPLOYED AT           LABELS                         OPERATION STATUS
pzfbs8uidbdv224joz                myorg         2021-03-10 11:21:29   status=released,build=210315   Deployed
fb4r8log2gm63r3gtu                myorg         2021-03-05 13:40:30
vrytwbhso558oil53m                myorg         2021-03-03 21:20:53

API Apigee

Per elencare i deployment di archiviazione in un ambiente, invia una richiesta GET alla seguente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments.

Ad esempio:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments" \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

Di seguito è riportato un esempio della risposta:

{
  "archiveDeployments": [
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
      "labels": {
        "status": "released",
        "build": "210315"
      },
      "createdAt": "1615821232451727",
      "updatedAt": "1615821232451727",
      "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/fb4r8log2gm63r3gtu",
      "createdAt": "1615819281858447",
      "updatedAt": "1615819281858447",
      "operation": "organizations/apigee-docs-c/operations/71549b9c-4493-41b6-9838-c0ad5b1b3181"
    },
    {
      "name": "organizations/myorg/environments/integration-test/archiveDeployments/vrytwbhso558oil53m",
      "createdAt": "1615578337832207",
      "updatedAt": "1615578337832207",
      "operation": "organizations/apigee-docs-c/operations/a2eb50b5-f276-4de4-96a3-72fac3d4c05e"
    }
  ]
}

Visualizzazione dei dettagli per un deployment di archiviazione

Visualizza i dettagli del deployment di un archivio, come descritto nelle sezioni seguenti.

gcloud

Per visualizzare i dettagli di un deployment di archiviazione in Apigee su Google Cloud, utilizza il seguente comando gcloud:

gcloud beta apigee archives describe $ID --environment=$ENV

Devi specificare quanto segue:

  • ID della revisione del deployment dell'archivio.
  • Ambiente Apigee in cui vuoi visualizzare i deployment di archiviazione utilizzando il flag --environment. L'ambiente Apigee deve essere abilitato per i deployment di archiviazione.

Per ulteriori informazioni, consulta la pagina gcloud beta apigee browse.

Ad esempio:

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

Di seguito è riportato un esempio della risposta:

Using Apigee organization 'myorg'
createdAt: '1615578337832207'
labels:
  status: 'released'
  build: '210315'
name: organizations/myorg/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/myorg/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed
operationStatus: Deployed
updatedAt: '1615821232451727'

API Apigee

Per visualizzare i dettagli di un deployment di archiviazione, invia una richiesta GET alla seguente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Devi passare l'ID della revisione del deployment dell'archivio. Per visualizzare l'elenco degli ID revisione del deployment dell'archivio per un ambiente Apigee, consulta Elenco di tutti i deployment di archiviazione in un ambiente.

Ad esempio:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/pzfbs8uidbdv224joz" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

Di seguito è riportato un esempio della risposta:

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

Aggiornamento delle etichette per un deployment in archivio

Aggiorna le etichette per un deployment di archiviazione come descritto nelle sezioni seguenti.

gcloud

Per aggiornare le etichette per un deployment di archiviazione in Apigee su Google Cloud, utilizza il seguente comando gcloud:

gcloud beta apigee archives update [$ID] --environment=$ENV
  [--update-labels=$KEY=$VALUE[,$KEY2=$VALUE2...$KEYn=$VALUEn]],
  [--clear-labels | --remove-labels=$KEY[,$KEY2...$KEYn]]

Devi specificare quanto segue:

  • ID della revisione del deployment dell'archivio
  • Ambiente Apigee in cui vuoi visualizzare i deployment di archiviazione utilizzando il flag --environment. L'ambiente Apigee deve essere abilitato per i deployment di archiviazione.
  • Uno o più dei seguenti flag:
    Flag Descrizione
    --clear-labels Rimuove tutte le etichette. Se è specificato anche --update-labels, viene applicato prima --clear-labels.

    Non può essere specificato se --remove-labels è specificato.

    --remove-labels Rimuove le etichette specificate. Se è specificato anche --update-labels, viene applicato per primo.

    Non può essere specificato se --clear-labels è specificato.

    --update-labels Aggiorna le etichette. Se esiste un'etichetta, il suo valore viene modificato, altrimenti viene creata una nuova etichetta. Combina i flag --remove-labels o --clear-labels per rimuovere rispettivamente un sottoinsieme o tutte le etichette prima di aggiornarle.

Per ulteriori informazioni, consulta l'articolo gcloud beta apigee informato update.

Ad esempio:

gcloud apigee archives update pzfbs8uidbdv224joz --environment=$ENV \
  --clear-labels --update-labels=status=released,build=210315,tier=1

Di seguito è riportato un esempio della risposta:

Using Apigee organization `myorg`
createdAt: 2020-04-04T04:04:04.004Z
labels:
  status: released,
  build: 210315,
  tier: 1
name: organizations/apigee-docs-c/environments/dev/archiveDeployments/pzfbs8uidbdv224joz
operation: organizations/apigee-docs-c/operations/bf587121-8b5c-4897-9d8f-9b1ef0cb06ca
updatedAt: '1633450432067431'

API Apigee

Per aggiornare le etichette per un deployment di archiviazione in Apigee su Google Cloud, invia una richiesta PATCH alla seguente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Devi passare l'ID della revisione del deployment dell'archivio. Per visualizzare l'elenco degli ID revisione del deployment dell'archivio per un ambiente Apigee, consulta Elenco di tutti i deployment di archiviazione in un ambiente.

Trasmetti tutte le etichette che vuoi aggiungere all'archivio nel corpo della richiesta. Le etichette che passi sovrascrivono l'insieme di etichette corrente, in modo da poterle rimuovere dal corpo della richiesta o rimuoverle tutte passando un elenco vuoto.

Ad esempio:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "labels": {
      "status" : "released",
      "build" : "210315"
    }
  }'

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

Di seguito è riportato un esempio della risposta:

{
  "name": "organizations/myorg/environments/integration-test/archiveDeployments/pzfbs8uidbdv224joz",
  "labels": {
     "status": "released",
     "build": "210315"
  },
  "createdAt": "1615578337832207",
  "updatedAt": "1615821232451727",
  "operation": "organizations/apigee-docs-c/operations/b64c2665-b5ac-43cc-9e2d-232e8895c2ed"
}

Eliminazione di un ambiente Apigee con deployment di archiviazione

Per eliminare un ambiente Apigee con deployment di archiviazione:

  1. In una cartella temporanea, crea la seguente struttura di directory in cui $ENV corrisponde al nome dell'ambiente che vuoi eliminare. Ad esempio:
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. Aggiungi il file deployments.json alla directory. Ad esempio:
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. Aggiorna deployments.json in modo da includere un array proxies vuoto, come mostrato di seguito.
    {
    "proxies" : []
    }
  4. Cambia la directory (cd) nella cartella $TEMP/archive.
    cd $TEMP/archive

    Se

  5. Esegui il deployment dell'archivio nell'ambiente Apigee che vuoi eliminare.
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Elimina l'ambiente Apigee.

Eliminazione di una revisione di un deployment in archivio

Elimina una revisione di un deployment in archivio, come descritto nella sezione seguente.

gcloud

Per eliminare una revisione di un deployment di archiviazione in Apigee su Google Cloud, utilizza il seguente comando gcloud:

gcloud apigee archives delete $ID --environment=$ENV

Devi specificare quanto segue:

  • L'ID della revisione da eliminare.
  • Ambiente Apigee in cui vuoi visualizzare i deployment di archiviazione utilizzando il flag --environment. L'ambiente Apigee deve essere abilitato per i deployment di archiviazione.

Ad esempio:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

Di seguito è riportato un esempio della risposta:

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

API Apigee

Per eliminare una revisione di un deployment di archiviazione in Apigee su Google Cloud, invia una richiesta DELETE alla seguente API: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Devi passare l'ID della revisione del deployment dell'archivio che vuoi eliminare. Per visualizzare l'elenco degli ID revisioni deployment dell'archivio per un ambiente, consulta Elenco di tutti i deployment di archiviazione in un ambiente.

Ad esempio:

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID" \
  -X DELETE \
  -H "Authorization: Bearer $TOKEN" \

Dove $TOKEN è impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostazione delle variabili di ambiente per le richieste API Apigee.

Di seguito è riportato un esempio della risposta:

{}