Deployment e gestione degli archivi in un ambiente Apigee

Questa pagina si applica ad Apigee e Apigee hybrid.

Visualizza la documentazione di Apigee Edge.

Sviluppare e testare 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 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.

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

Interfaccia utente Apigee classica

Per attivare il deployment dell'archivio nel tuo ambiente Apigee, quando crei un ambiente Apigee (al di fuori della procedura guidata di provisioning), seleziona Archivio 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 Impostazione delle variabili di ambiente per le richieste dell'API Apigee.

Di seguito è riportato un esempio di 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 di 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 API Create environments.

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 archives deploy.

Per impostazione predefinita, l'archivio viene disegnato:

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

    Per visualizzare la configurazione gcloud corrente, esegui gcloud config list. Per specificare l'organizzazione, utilizza 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. Consulta anche Informazioni sulla struttura di uno spazio di lavoro Apigee.

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

  • Lunghezza massima di 63 caratteri
  • Dimensione massima di 128 byte
  • Codifica UTF-8
  • Essere conformi alla 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 associato all'organizzazione Apigee corrente 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 produzione nell'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

Risposta di esempio

Di seguito è riportato un esempio di risposta:

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

Controllo dello stato di implementazione dell'archivio

Per controllare lo stato di implementazione dell'archivio, utilizza il comando gcloud alpha apigee operations.

L'esempio seguente mostra lo stato di implementazione 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 dell'archivio 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 dell'archivio utilizzando il flag --environment. L'ambiente Apigee deve essere Visualizzazione dei dettagli di un deployment dell'archivio. Per ulteriori informazioni, consulta gcloud beta apigee archives list.

Di seguito è riportato un esempio di 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 dell'archivio 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 dell'archivio 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 è riportato un esempio di 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 di implementazione dell'archivio. Per visualizzare l'elenco degli ID revisione del deployment dell'archivio per un ambiente Apigee, consulta Elenco di tutti i deployment dell'archivio 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 dell'archivio

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 è specificato anche --update-labels, viene applicato per primo --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 è specificato --clear-labels.

    --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 ulteriori informazioni, consulta l'aggiornamento degli archivi apigee di gcloud beta.

Ad esempio:

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

Di seguito è riportato un esempio di 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 di implementazione dell'archivio. Per visualizzare l'elenco degli ID revisione del deployment dell'archivio per un ambiente Apigee, consulta Elenco di tutti i deployment dell'archivio in un ambiente.

Passa 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 archivi

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) 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 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 che vuoi eliminare.
  • 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.

Ad esempio:

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

Di seguito è riportato un esempio di risposta:

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

API Apigee

Per eliminare una revisione di un deployment dell'archivio 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 di implementazione dell'archivio che vuoi eliminare. Per visualizzare l'elenco degli ID revisione del deployment dell'archivio per un ambiente, consulta Elenco di tutti i deployment dell'archivio 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 Impostazione delle variabili di ambiente per le richieste dell'API Apigee.

Di seguito è riportato un esempio di risposta:

{}