Déployer et gérer des archives dans un environnement Apigee

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Développez et testez vos proxys d'API programmables à l'aide d'Apigee dans VS Code. Déployez ensuite une archive de votre environnement de configuration de proxy d'API dans votre environnement de test et de production Apigee comme décrit dans les sections suivantes.

Activer le déploiement d'archive dans un environnement Apigee

Avant de pouvoir déployer une archive, vous devez activer le déploiement d'archive dans votre environnement Apigee.

Activez le déploiement d'archive comme décrit dans les sections suivantes.

Interface utilisateur classique d'Apigee

Pour activer le déploiement d'archive dans votre environnement Apigee, lorsque vous créez un environnement Apigee (en dehors de l'assistant de provisionnement), sélectionnez Archive (Archiver) sous "Deployment type" (Type de déploiement).

Boîte de dialogue "Nouvel environnement".

API Apigee

Pour activer le déploiement d'archive lors de la création d'un environnement à l'aide de l'API, définissez deploymentType sur ARCHIVE dans le corps de la requête.

Exemple :

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"
   }'

$TOKEN est défini sur votre jeton d'accès OAuth 2.0, comme décrit dans la section Obtenir un jeton d'accès OAuth 2.0. Pour en savoir plus sur les options curl utilisées dans cet exemple, consultez la section Utiliser curl. Pour obtenir une description des variables d'environnement utilisées, consultez la section Définir des variables d'environnement pour les requêtes API Apigee.

Voici un exemple de réponse :

{
  "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"
  }
}

Vous pouvez vérifier l'état de l'opération. Exemple :

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

Voici un exemple de réponse : Notez que l'état de l'opération est FINISHED et que l'état de l'environnement est défini sur 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"
  }
}

Pour en savoir plus sur l'API, consultez la page API Créer des environnements.

Déployer une archive dans un environnement Apigee

Pour déployer une archive dans un environnement Apigee, utilisez la commande gcloud suivante :

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

Vous devez spécifier l'environnement Apigee dans lequel vous souhaitez déployer l'archive à l'aide de l'option --environment. L'environnement Apigee doit être activé pour les déploiements d'archives. Pour en savoir plus, consultez déploiement d'archives apigee bêta gcloud.

Par défaut, l'archive est déployée :

  • À l'organisation associée au projet actif actuel configuré pour gcloud.

    Pour afficher la configuration gcloud actuelle, exécutez gcloud config list. Pour spécifier l'organisation, utilisez l'option --organization.

  • Depuis le répertoire de travail actuel.
    Si le répertoire racine src/main/apigee de l'archive se trouve à un emplacement autre que celui du répertoire de travail actuel, utilisez l'indicateur --source pour spécifier l'emplacement du répertoire racine de l'archive. Voir aussi Comprendre la structure d'un espace de travail Apigee.

Vous pouvez éventuellement ajouter jusqu'à 64 paires clé/valeur d'étiquettes personnalisées à un déploiement d'archive à l'aide de l'option --labels. Par exemple, vous pouvez attribuer une étiquette avec un numéro de build à une archive. Les libellés s'afficheront lorsque vous répertoriez les déploiements d'archive. Les clé-valeurs doivent respecter les consignes suivantes :

  • Longueur maximale de 63 caractères
  • Taille maximale de 128 octets.
  • Encodage UTF-8
  • Être conforme à l'expression régulière compatible Perl suivante : [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}

En arrière-plan, la commande gcloud effectue les étapes suivantes lors du déploiement sur Apigee sur Google Cloud :

  1. Crée un fichier ZIP du répertoire d'espace de travail Apigee src/main/apigee. Pour en savoir plus, consultez la page Comprendre la structure d'un espace de travail Apigee.
  2. Déploie l'archive sur Apigee sur Google Cloud, comme suit :
    1. Génère une URL signée pour le bucket Google Cloud Storage du projet associé à l'organisation Apigee actuelle à l'aide de l'API generateUploadUrl.
    2. importe le fichier ZIP d'archive dans le bucket Cloud Storage à l'aide de l'URL signée ;
    3. Elle déploie l'archive en cours de préproduction dans le bucket Cloud Storage vers Apigee sur Google Cloud. À l'aide de l'API Archive Deployments.

Exemples de requête

L'exemple suivant crée une archive zip de src/main/apigee dans le répertoire actuel et la déploie dans l'environnement Apigee spécifié :

gcloud beta apigee archives deploy --environment=$ENV

L'exemple suivant montre comment spécifier une organisation qui n'est pas associée au projet actuellement actif et configuré pour gcloud :

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

L'exemple suivant crée une archive ZIP du répertoire src/main/apigee sous myarchive et la déploie dans l'environnement Apigee spécifié :

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

L'exemple suivant ajoute les étiquettes status et build_id au déploiement d'archive :

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

Exemple de réponse

Voici un exemple de réponse :

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

Vérifier l'état du déploiement de l'archive

Pour vérifier l'état du déploiement de l'archive, exécutez la commande gcloud alpha apigee operations.

L'exemple suivant montre l'état de déploiement de l'archive pour l'opération dont l'ID de révision 439fa3f7-6aa4-42ad-8b12-3ca912c75d5c est IN_PROGRESS.

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

Voici un exemple de réponse : Notez que state est défini sur 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

Une fois l'opération terminée, state est défini sur FINISHED.

Répertorier tous les déploiements d'archives dans un environnement

Répertoriez tous les déploiements d'archives dans un environnement, comme décrit dans les sections suivantes.

gcloud

Pour répertorier tous les déploiements d'archive dans Apigee sur Google Cloud, utilisez la commande gcloud suivante :

gcloud beta apigee archives list --environment=$ENV

Vous devez spécifier l'environnement Apigee dans lequel vous souhaitez afficher les déploiements d'archive à l'aide de l'indicateur --environment. L'environnement Apigee doit être Afficher les détails d'un déploiement d'archive. Pour en savoir plus, consultez liste d'archives apigee bêta gcloud.

Voici un exemple de réponse :

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

Pour répertorier les déploiements d'archive dans un environnement, envoyez une requête GET à l'API suivante : https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments.

Exemple :

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

$TOKEN est défini sur votre jeton d'accès OAuth 2.0, comme décrit dans la section Obtenir un jeton d'accès OAuth 2.0. Pour en savoir plus sur les options curl utilisées dans cet exemple, consultez la section Utiliser curl. Pour obtenir une description des variables d'environnement utilisées, consultez la section Définir des variables d'environnement pour les requêtes API Apigee.

Voici un exemple de réponse :

{
  "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"
    }
  ]
}

Afficher les détails d'un déploiement d'archive

Affichez les détails d'un déploiement d'archive, comme décrit dans les sections suivantes.

gcloud

Pour afficher les détails d'un déploiement d'archive dans Apigee sur Google Cloud, utilisez la commande gcloud suivante :

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

Vous devez spécifier les éléments suivants :

  • ID de la révision du déploiement de l'archive.
  • Environnement Apigee dans lequel vous souhaitez afficher les déploiements d'archive à l'aide de l'indicateur --environment. L'environnement Apigee doit être activé pour les déploiements d'archives.

Pour en savoir plus, consultez description d'archives apigee bêta gcloud.

Exemple :

gcloud apigee archives describe pzfbs8uidbdv224joz --environment=$ENV

Voici un exemple de réponse :

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

Pour afficher les détails d'un déploiement d'archive, envoyez une requête GET à l'API suivante : https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Vous devez transmettre l'ID de la révision du déploiement de l'archive. Pour afficher la liste des ID de révision de déploiement d'archive pour un environnement Apigee, voir Répertorier tous les déploiements d'archive dans un environnement.

Exemple :

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

$TOKEN est défini sur votre jeton d'accès OAuth 2.0, comme décrit dans la section Obtenir un jeton d'accès OAuth 2.0. Pour en savoir plus sur les options curl utilisées dans cet exemple, consultez la section Utiliser curl. Pour obtenir une description des variables d'environnement utilisées, consultez la section Définir des variables d'environnement pour les requêtes API Apigee.

Voici un exemple de réponse :

{
  "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"
}

Mettre à jour les libellés d'un déploiement d'archive

Mettez à jour les libellés d'un déploiement d'archive, comme décrit dans les sections suivantes.

gcloud

Pour mettre à jour les libellés d'un déploiement d'archive dans Apigee sur Google Cloud, utilisez la commande gcloud suivante :

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

Vous devez spécifier les éléments suivants :

  • ID de la révision de déploiement de l'archive
  • Environnement Apigee dans lequel vous souhaitez afficher les déploiements d'archive à l'aide de l'indicateur --environment. L'environnement Apigee doit être activé pour les déploiements d'archives.
  • Un ou plusieurs des indicateurs suivants :
    Option Description
    --clear-labels Supprime tous les libellés. Si --update-labels est également spécifié, --clear-labels est appliqué en premier.

    Ce champ ne peut pas être spécifié si --remove-labels est spécifié.

    --remove-labels Supprime les libellés spécifiés. Si --update-labels est également spécifié, il est appliqué en premier.

    Ce champ ne peut pas être spécifié si --clear-labels est spécifié.

    --update-labels Mettez à jour les étiquettes. Si un libellé existe, sa valeur est modifiée. Sinon, un libellé est créé. Combinez-les à des indicateurs --remove-labels ou --clear-labels pour supprimer un sous-ensemble ou tous les libellés, respectivement, avant de mettre à jour des libellés.

Pour en savoir plus, consultez mise à jour d'archives apigee bêta gcloud.

Exemple :

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

Voici un exemple de réponse :

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

Pour mettre à jour les libellés d'un déploiement d'archive dans Apigee sur Google Cloud, envoyez une requête PATCH à l'API suivante : https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Vous devez transmettre l'ID de la révision du déploiement de l'archive. Pour afficher la liste des ID de révision de déploiement d'archive pour un environnement Apigee, reportez-vous à la section Répertorier tous les déploiements d'archive dans un environnement.

Transmettez tous les libellés que vous souhaitez ajouter à l'archive dans le corps de la requête. Les libellés que vous transmettez écrasent l'ensemble actuel d'étiquettes. Vous pouvez ainsi supprimer des étiquettes en les omettant dans le corps de la requête ou en supprimant toutes les étiquettes en transmettant une liste vide.

Exemple :

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

$TOKEN est défini sur votre jeton d'accès OAuth 2.0, comme décrit dans la section Obtenir un jeton d'accès OAuth 2.0. Pour en savoir plus sur les options curl utilisées dans cet exemple, consultez la section Utiliser curl. Pour obtenir une description des variables d'environnement utilisées, consultez la section Définir des variables d'environnement pour les requêtes API Apigee.

Voici un exemple de réponse :

{
  "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"
}

Supprimer un environnement Apigee avec des déploiements d'archives

Pour supprimer un environnement Apigee avec des déploiements d'archives, procédez comme suit :

  1. Dans un dossier temporaire, créez la structure de répertoire suivante, où $ENV correspond au nom de l'environnement que vous souhaitez supprimer. Exemple :
    mkdir -p /$TEMP/archive/src/main/apigee/environments/$ENV
  2. Ajoutez le fichier deployments.json au répertoire. Exemple :
    touch /$TEMP/archive/src/main/apigee/environments/$ENV/deployments.json
  3. Mettez à jour le fichier deployments.json pour inclure un tableau proxies vide, comme illustré ci-dessous.
    {
    "proxies" : []
    }
  4. Remplacez le répertoire (cd) par le dossier $TEMP/archive.
    cd $TEMP/archive

    En effet,

  5. Déployez l'archive dans l'environnement Apigee que vous souhaitez supprimer.
    gcloud beta apigee archives deploy --environment=$ENV
    
  6. Supprimez l'environnement Apigee.

Supprimer une révision d'un déploiement d'archive

Supprimez une révision d'un déploiement d'archive comme décrit dans la section suivante.

gcloud

Pour supprimer une révision d'un déploiement d'archive dans Apigee sur Google Cloud, utilisez la commande gcloud suivante :

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

Vous devez spécifier les éléments suivants :

  • ID de la révision que vous souhaitez supprimer.
  • Environnement Apigee dans lequel vous souhaitez afficher les déploiements d'archive à l'aide de l'indicateur --environment. L'environnement Apigee doit être activé pour les déploiements d'archives.

Exemple :

gcloud apigee archives delete fb4r8log2gm63r3gtu --environment=dev

Voici un exemple de réponse :

Archive deployment revision "fb4r8log2gm63r3gtu" deleted

API Apigee

Pour supprimer une révision d'un déploiement d'archive dans Apigee sur Google Cloud, envoyez une requête DELETE à l'API suivante : https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/archiveDeployments/$ID.

Vous devez transmettre l'ID de la révision de déploiement d'archive que vous souhaitez supprimer. Pour afficher la liste des ID de révision de déploiement d'archive pour un environnement Apigee, reportez-vous à la section Répertorier tous les déploiements d'archive dans un environnement.

Exemple :

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

$TOKEN est défini sur votre jeton d'accès OAuth 2.0, comme décrit dans la section Obtenir un jeton d'accès OAuth 2.0. Pour en savoir plus sur les options curl utilisées dans cet exemple, consultez la section Utiliser curl. Pour obtenir une description des variables d'environnement utilisées, consultez la section Définir des variables d'environnement pour les requêtes API Apigee.

Voici un exemple de réponse :

{}