Deployment e gestione degli archivi in un ambiente Apigee

Questa pagina si applica a Apigee e Apigee ibrido.

Visualizza la documentazione di Apigee Edge.

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

Abilitazione del deployment degli archivi in un ambiente Apigee

Prima di poter eseguire il deployment di un archivio, devi abilitare il deployment dell'archivio nel tuo ambiente Apigee.

Abilita il deployment degli archivi 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 degli archivi 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 Utilizzo di curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

Di seguito viene fornito 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 viene fornito 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 saperne di più sull'API, consulta API Create 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 il deployment di archivi. Per ulteriori informazioni, consulta gcloud beta apigee archive deploy.

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

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

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

  • Dalla directory di lavoro corrente.
    Se la directory root src/main/apigee dell'archivio si trova in una posizione diversa dalla directory di lavoro attuale, utilizza 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 etichette personalizzate a un deployment di archiviazione utilizzando il flag --labels. Ad esempio, potresti voler etichettare un archivio con un numero di build. Le etichette verranno visualizzate quando elenchi i deployment dell'archivio. Le coppie chiave-valore devono rispettare le seguenti linee guida:

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

In background, il comando gcloud esegue i seguenti passaggi durante il deployment in Apigee su Google Cloud:

  1. Crea un file ZIP della directory src/main/apigee dell'area di lavoro 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 nel seguente modo:
    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 dell'archivio nel bucket Cloud Storage utilizzando l'URL firmato.
    3. Esegue il deployment in Apigee su Google Cloud dell'archivio attualmente memorizzato nel bucket Cloud Storage. 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 corrente 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 viene fornito un esempio della risposta:

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

Controllo dello stato del deployment dell'archivio in corso

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

L'esempio seguente mostra 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 viene fornito un esempio della risposta. Tieni presente che 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 degli archivi in un ambiente come descritto nelle sezioni seguenti.

gcloud

Per elencare tutti i deployment degli archivi 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 Visualizzazione dei dettagli di un deployment in archivio. Per ulteriori informazioni, consulta gcloud beta apigee archive list.

Di seguito viene fornito 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 degli archivi 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 Utilizzo di curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

Di seguito viene fornito 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 di un deployment di archiviazione 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 il deployment di archiviazione.

Per maggiori informazioni, consulta gcloud beta apigee archive describe.

Ad esempio:

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

Di seguito viene fornito 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 dei deployment degli archivi per un ambiente Apigee, consulta Elenco di tutti i deployment di archivi 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 Utilizzo di curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

Di seguito viene fornito 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 di archiviazione

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 il deployment di archiviazione.
  • Uno o più dei seguenti flag:
    Flag Descrizione
    --clear-labels Rimuove tutte le etichette. Se viene 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. Combinalo con i flag --remove-labels o --clear-labels per rimuovere rispettivamente un sottoinsieme o tutte le etichette prima di aggiornare le etichette.

Per maggiori informazioni, consulta gcloud beta apigee archive.

Ad esempio:

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

Di seguito viene fornito 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 archivi in Apigee su Google Cloud, invia una richiesta PATCH all'API seguente: 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 di revisione dei deployment degli archivi per un ambiente Apigee, vedi Elenco di tutti i deployment degli archivi in un ambiente.

Trasmetti tutte le etichette che vuoi aggiungere all'archivio nel corpo della richiesta. Le etichette che passi sovrascrivono l'insieme corrente di etichette, in modo da poter rimuovere le etichette omettendole dal corpo della richiesta o rimuovere tutte le etichette trasmettendo 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 Utilizzo di curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

Di seguito viene fornito 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 directory (cd) con la 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 la revisione di un deployment di archiviazione 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:

Ad esempio:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

Di seguito viene fornito 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 all'API seguente: 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 revisione dei deployment degli archivi per un ambiente, vedi Elenco di tutti i deployment degli archivi 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 Utilizzo di curl. Per una descrizione delle variabili di ambiente utilizzate, consulta Impostare le variabili di ambiente per le richieste API Apigee.

Di seguito viene fornito un esempio della risposta:

{}