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 proxy API programmabili utilizzando Apigee in VS Code. Poi, esegui il deployment di un'archiviazione dell'ambiente di configurazione del proxy API nell'ambiente di produzione e di test di integrazione di Apigee come descritto nelle sezioni seguenti.

Attivazione del deployment dell'archivio in un ambiente Apigee

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

Abilita il deployment degli archivi come descritto nelle sezioni seguenti.

Interfaccia utente Apigee classica

Per abilitare il deployment degli archivi 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 quando crei 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 tuo 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 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 i deployment degli 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 la configurazione gcloud corrente, esegui gcloud config list. Per specificare l'organizzazione, usa il flag --organization.

  • Dalla directory di lavoro corrente.
    Se la directory principale src/main/apigee dell'archivio si trova in una posizione diversa dalla directory di lavoro corrente, utilizza il flag --source per specificare la posizione della directory principale 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 di archiviazione. 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}

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 ulteriori informazioni, consulta Informazioni sulla struttura di uno spazio di lavoro Apigee.
  2. Esegui il deployment dell'archivio in Apigee su Google Cloud come segue:
    1. Genera un URL firmato per il bucket Google Cloud Storage nel progetto associate all'attuale organizzazione Apigee utilizzando l'API generateUploadUrl.
    2. Carica il file ZIP dell'archivio nel bucket Cloud Storage utilizzando l'URL firmato.
    3. Esegue il deployment dell'archivio attualmente in fase di staging 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 corrente e lo esegue nel 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

Il seguente esempio crea un archivio ZIP della directory src/main/apigee in myarchive e lo esegue in un ambiente Apigee specificato:

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

L'esempio seguente aggiunge 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 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 è riportato un esempio di 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 degli archivi in un ambiente

Elenca tutti i deployment dell'archivio 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 maggiori 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 dell'archivio 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 tuo 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 dell'API Apigee.

Di seguito è riportato un esempio di 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 di un deployment dell'archivio

Visualizza i dettagli di un deployment di archiviazione come descritto nelle sezioni seguenti.

gcloud

Per visualizzare i dettagli di un deployment dell'archivio 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 degli archivi.

Per ulteriori informazioni, consulta gcloud beta apigee archives 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 dell'archivio, 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 dei deployment in archivio ID revisione 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 tuo 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 dell'API Apigee.

Di seguito è riportato un esempio di 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 dell'archivio come descritto nelle sezioni seguenti.

gcloud

Per aggiornare le etichette per un deployment dell'archivio 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 dell'archivio utilizzando il flag --environment. L'ambiente Apigee deve essere abilitato per i deployment degli archivi.
  • Uno o più dei seguenti flag:
    Bandiera Descrizione
    --clear-labels Rimuove tutte le etichette. Se viene specificato anche --update-labels, viene applicato prima --clear-labels.

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

    --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; in caso contrario, viene creata una nuova etichetta. Da combinare con i flag --remove-labels o --clear-labels per rimuovere rispettivamente un sottoinsieme o tutte le etichette prima di aggiornarle.

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 dell'archivio 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 dei deployment in archivio ID revisione 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 sovrascrive l'insieme di etichette corrente, quindi puoi rimuovere le etichette omettendole dal corpo della richiesta o rimuovere tutte le etichette 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 tuo 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 dell'API Apigee.

Di seguito è riportato un esempio di 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 i deployment dell'archivio:

  1. In una cartella temporanea, crea la seguente struttura di directory in cui $ENV corrisponde al nome dell'ambiente da 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 dell'archivio

Elimina una revisione di un deployment dell'archivio come descritto nella sezione seguente.

gcloud

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

gcloud beta 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 degli archivi.

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 delle revisioni del deployment dell'archivio: ID 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 tuo 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 Impostare le variabili di ambiente per le richieste API Apigee.

Di seguito viene fornito un esempio della risposta:

{}