Effectuer le provisionnement d'une organisation d'évaluation avec appairage de VPC

Cette page s'applique à Apigee, mais pas à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Résumé des étapes

Ce document explique comment installer et configurer une organisation d'évaluation Apigee (ou org eval) à partir de la ligne de commande. Les organisations d'évaluation expirent au bout de 60 jours et peuvent présenter d'autres limites. Consultez également la section Comparaison des organisations d'évaluation et payantes.

Les étapes de provisionnement sont les suivantes :

Étape 1 : Définissez des variables d'environnement

Configurez gcloud et définissez les variables d'environnement à utiliser dans les étapes suivantes :

  1. Assurez-vous de respecter les exigences répertoriées dans la section Prérequis.
  2. Vous devez auparavant avoir installé gcloud CLI. Si vous devez l'installer, consultez la section Installer gcloud CLI.
  3. Initialisez gcloud CLI comme décrit dans la section Initialiser gcloud CLI ou, si la CLI est déjà initialisée, assurez-vous que le projet Google Cloud que vous avez créé dans la section Prérequis est le projet par défaut pour gcloud.
  4. Définissez les variables d'environnement suivantes :
    AUTH="Authorization: Bearer $(gcloud auth print-access-token)"
    PROJECT_ID="YOUR_PROJECT_ID"
    RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
    ANALYTICS_REGION="YOUR_ANALYTICS_REGION"

    Où :

    • AUTH définit l'en-tête Authentication avec un jeton de support. Vous utiliserez cet en-tête lors de l'appel des API Apigee. Notez que le jeton expire après un certain temps. Si c'est le cas, il vous suffit de le générer à nouveau en exécutant la même commande. Pour en savoir plus, consultez la page de référence sur la commande print-access-token.
    • PROJECT_ID est l'ID du projet Cloud que vous avez créé dans la section Prérequis.
    • RUNTIME_LOCATION est l'emplacement physique où se trouve l'instance Apigee. Pour obtenir la liste des emplacements d'exécution disponibles, voir Emplacements Apigee.

    • ANALYTICS_REGION est l'emplacement physique dans lequel vous stockerez les données d'analyse Apigee. Pour obtenir la liste des régions Apigee API Analytics disponibles, consultez la page Emplacements Apigee.

      RUNTIME_LOCATION et ANALYTICS_REGION peuvent se trouver dans la même région, mais pas nécessairement. Toutefois, si elles sont identiques, cela peut améliorer les performances.

  5. (Facultatif) Vérifiez votre travail en répercutant les valeurs que vous venez de définir. Notez que lorsque vous souhaitez utiliser une variable dans vos commandes, faites précéder le nom de la variable d'un signe dollar ($).
    echo $AUTH
    echo $PROJECT_ID
    echo $RUNTIME_LOCATION
    echo $ANALYTICS_REGION
    

    Les réponses à vos commandes echo doivent se présenter comme suit :

    Authorization: Bearer ya29.a123456678940B63hPSAMPLEsampleKKYVsample0f3pWDWZDuH2-hENkNa
    TvgZ1PD977TMvv6edBQPJezdHw040880Ol_LoD5ZDkt-i-knizia_KhA9L20sSvztL81-SAMPLE42ELPMASk2_
    1CxN
    my-cloud-project
    us-west1
    us-west1
    

Étape 2 : Activez les API

  1. Apigee requiert l'activation de plusieurs API Google Cloud. Activez-les en exécutant la commande services enable :

    gcloud services enable apigee.googleapis.com \
      servicenetworking.googleapis.com compute.googleapis.com \
      cloudkms.googleapis.com --project=$PROJECT_ID
  2. (Facultatif) Pour vérifier votre travail, utilisez la commande services list pour afficher toutes les API activées :

    gcloud services list

    La réponse affiche tous les services activés, y compris les API que vous venez d'activer (Apigee, Service Networking, Cloud KMS et Compute Engine).

Étape 3 : Configurez la mise en réseau des services

  1. Créez les variables d'environnement suivantes :
    RANGE_NAME=YOUR_RANGE_NAME
    NETWORK_NAME=YOUR_NETWORK_NAME
    

    Où :

    • RANGE_NAME est le nom de la plage d'adresses IP que vous créez. Vous pouvez donner le nom que vous voulez à la plage. Par exemple : google-svcs.
    • NETWORK_NAME est le nom de la ressource réseau dans laquelle les adresses doivent être réservées. Google crée un réseau par défaut (nommé default) pour chaque nouveau projet afin que vous puissiez l'utiliser. Toutefois, Google ne recommande d'utiliser le réseau par défaut que pour effectuer des tests.
  2. Créez une plage d'adresses IP avec une longueur CIDR de /22 :
    gcloud compute addresses create $RANGE_NAME \
      --global \
      --prefix-length=22 \
      --description="Peering range for Apigee services" \
      --network=$NETWORK_NAME \
      --purpose=VPC_PEERING \
      --addresses=OPTIONAL_ADDRESSES \
      --project=$PROJECT_ID

    --addresses vous permet de spécifier (facultatif) une ou plusieurs adresses IP pour la longueur de préfixe de /22. Par exemple, pour allouer le bloc CIDR 192.168.0.0/22, spécifiez 192.168.0.0 pour l'adresse et 22 pour la longueur du préfixe. Consultez également la section Créer une allocation d'adresses IP.

    Si vous ne fournissez pas de paramètre --addresses, gcloud sélectionne automatiquement une plage d'adresses disponible.

    En cas de réussite, gcloud renvoie la réponse suivante :

    Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].

    Une fois que vous avez créé une plage d'adresses IP, les adresses sont associées au projet jusqu'à leur publication.

  3. Créez une deuxième plage d'adresses IP avec une longueur CIDR de /28. Cette plage est utilisée par Apigee à des fins de dépannage et ne peut pas être personnalisée ni modifiée.
    gcloud compute addresses create google-managed-services-support-1 \
      --global \
      --prefix-length=28 \
      --description="Peering range for supporting Apigee services" \
      --network=$NETWORK_NAME \
      --purpose=VPC_PEERING \
      --addresses=OPTIONAL_ADDRESSES \
      --project=$PROJECT_ID

    --addresses vous permet de spécifier éventuellement une ou plusieurs adresses IP pour la longueur du préfixe /28. Par exemple, pour allouer le bloc CIDR 192.168.0.0/28, spécifiez 192.168.0.0 pour l'adresse et 28 pour la longueur du préfixe. Consultez également la section Créer une allocation d'adresses IP.

    Si vous ne fournissez pas de paramètre --addresses, gcloud sélectionne automatiquement une plage d'adresses disponible.

  4. Connectez vos services au réseau à l'aide de la commande suivante :
    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=$NETWORK_NAME \
      --ranges=$RANGE_NAME,google-managed-services-support-1 \
      --project=$PROJECT_ID

    Cette opération peut prendre plusieurs minutes. En cas de réussite, gcloud renvoie la réponse suivante :

    Operation "operations/OPERATION_ID" finished successfully.

    OPERATION_ID est l'UUID de l'opération de longue durée (LRO).

    Apigee crée une connexion entre votre réseau et les services de Google. Apigee, en particulier, connecte votre projet à l'API Service Networking via l'appairage de VPC. Apigee associe également des adresses IP à votre projet.

Étape 4 : Créez une organisation

Une organisation est le conteneur de niveau supérieur dans Apigee. Elle contient tous les proxys d'API et les ressources associées. Pour en savoir plus, consultez la page Comprendre les organisations.

  1. Créez une organisation d'évaluation à l'aide de la commande gcloud apigee organizations :
    gcloud alpha apigee organizations provision \
      --runtime-location=$RUNTIME_LOCATION \
      --analytics-region=$ANALYTICS_REGION \
      --authorized-network=$NETWORK_NAME \
      --project=$PROJECT_ID

    --authorized-network est le nom de votre réseau d'appairage personnalisé. Exemple : default.

  2. Lorsque vous exécutez la commande provision, Google démarre une opération de longue durée pour créer l'organisation d'évaluation. Cette opération peut prendre jusqu'à 40 minutes. Pendant ce temps, gcloud affiche le message suivant :

    Provisioning organization...

    Une fois l'organisation d'évaluation et l'instance d'exécution associée créées, gcloud envoie la réponse suivante :

    Provisioning organization...done.
  3. Si vous exécutez la commande suivante :

    gcloud alpha apigee operations list --organization=$PROJECT_ID

    Vous devriez voir que tous les UUID sont à l'état FINISHED. Exemple :

    UUID                                  ORGANIZATION  STATE
    00bab06f-c60c-41a5-4242-7SAMPLE7f     my-org        FINISHED
    429790a7-3151-4642-4343-7SAMPLE7f     my-org        FINISHED
    d00a92a9-9b83-4642-4343-7SAMPLE7f     my-org        FINISHED
    f48a00ff-7daa-4c4a-4444-7SAMPLE7f     my-org        FINISHED

Étape 5 : Configurez le routage

Décidez si vous souhaitez autoriser l'accès externe ou uniquement l'accès interne :

Type d'accès Description du processus de configuration et de déploiement
Interne

N'autorisez que l'accès interne à vos proxys API.

Vous devez créer une VM à l'intérieur du réseau et vous y connecter. À partir de la nouvelle VM, vous pouvez envoyer une requête à un proxy d'API Apigee.

Externe

Autorisez l'accès externe à vos proxys API.

Utilisez Private Service Connect (PSC) pour activer la connexion privée entre un producteur de services (Apigee) et un client du service (le projet VPC appairé et/ou un ou plusieurs autres projets Cloud que vous contrôlez). Avec cette méthode, les requêtes transitent par un équilibreur de charge externe global vers un seul point de rattachement, appelé rattachement de service. Cette configuration vous permet d'envoyer des requêtes de proxy d'API Apigee à partir de n'importe quelle machine compatible avec le réseau.

Chacune de ces approches de routage est présentée sous la forme d'un onglet dans les instructions ci-dessous.

Routage interne

Si vous utilisez la ligne de commande pour configurer un proxy d'API pour un accès interne uniquement, aucune tâche n'est à effectuer pour cette étape. Vous pouvez passer à l'Étape 6 : Appelez l'exemple de proxy d'API, où vous enverrez une requête à votre proxy d'API.

Routage externe

Cette section explique comment configurer le routage externe à l'aide de Private Service Connect (PSC) pour permettre la communication entre Apigee et les VPC que vous contrôlez. Vous devez effectuer cette opération avant de pouvoir envoyer une requête à partir d'un client externe vers votre instance d'exécution Apigee.

Les étapes de configuration externe sont les suivantes :

Étape 5a : Créez un groupe de points de terminaison du réseau (NEG)
Étape 5b : Configurez l'équilibreur de charge

Toutes ces étapes sont décrites plus en détail dans les sections suivantes.

Étape 5a : Créez un groupe de points de terminaison du réseau (NEG)

  1. Obtenez le rattachement de service pour votre instance Apigee :
    curl -i -X GET -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Dans l'exemple de résultat suivant, la valeur serviceAttachment est indiquée en gras :

    {
      "instances": [
        {
          "name": "eval-instance",
          "location": "us-west1",
          "host": "10.72.100.2",
          "port": "443",
          "createdAt": "1657832463500",
          "lastModifiedAt": "1657833920670",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-8-0-apigee-18",
          "ipRange": "10.74.100.0/28,10.74.100.16/28",
          "consumerAcceptList": [
            "apigee-eval-test"
          ],
          "serviceAttachment": "projects/s8da1b0111eb33765-tp/regions/us-west1/serviceAttachments/apigee-us-west1-icza"
        }
      ]
    }
  2. Créez un groupe de points de terminaison du réseau (NEG) Private Service Connect qui pointe vers le rattachement de service que vous avez obtenu à partir du corps de réponse de l'instance à l'étape précédente.

    gcloud compute network-endpoint-groups create NEG_NAME \
      --network-endpoint-type=private-service-connect \
      --psc-target-service=TARGET_SERVICE \
      --region=$RUNTIME_LOCATION \
      --network=$NETWORK_NAME \
      --subnet=SUBNET_NAME \
      --project=$PROJECT_ID
    

    Remplacez les éléments suivants :

    • NEG_NAME : nom du groupe de points de terminaison du réseau.
    • TARGET_SERVICE : rattachement de service auquel vous souhaitez vous connecter. Par exemple : projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
    • SUBNET_NAME : nom du sous-réseau utilisé pour la connectivité privée au producteur. La taille du sous-réseau peut être faible : le NEG PSC n'a besoin que d'une adresse IP du sous-réseau. Pour Apigee, un seul NEG PSC est nécessaire par région. Le sous-réseau peut être partagé et utilisé par des VM ou d'autres entités. Si aucun sous-réseau n'est spécifié, les points de terminaison du réseau peuvent appartenir à n'importe quel sous-réseau de la région dans laquelle le groupe de points de terminaison du réseau est créé.

Étape 5b : Configurez l'équilibreur de charge

Configurez un équilibreur de charge HTTP(S) externe global (schéma d'équilibrage de charge défini sur EXTERNAL_MANAGED).

Bien que le NEG Private Service Connect soit régional, tous les autres composants d'équilibrage de charge de cette configuration sont globaux.

  1. Réservez une adresse IPv4 externe globale pour l'équilibreur de charge.
    gcloud compute addresses create ADDRESS_NAME \
      --ip-version=IPV4 --global --project=$PROJECT_ID

    Remplacez ADDRESS_NAME par le nom de la ressource d'adresse IP

    Exécutez la commande suivante pour afficher l'adresse IP réservée :

    gcloud compute addresses describe ADDRESS_NAME \
      --format="get(address)" --global --project=$PROJECT_ID
  2. Créez un service de backend pour le NEG.
    gcloud compute backend-services create BACKEND_SERVICE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --protocol=HTTPS \
      --global --project=$PROJECT_ID
  3. Remplacez BACKEND_SERVICE_NAME par le nom du service de backend.

  4. Ajoutez le service de backend au NEG.
    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
      --network-endpoint-group=NEG_NAME \
      --network-endpoint-group-region=$RUNTIME_LOCATION \
      --global --project=$PROJECT_ID

    Remplacez les éléments suivants :

    • BACKEND_SERVICE_NAME : nom du service de backend.
    • NEG_NAME : nom du groupe de points de terminaison du réseau.
  5. Créez un mappage d'URL pour l'équilibreur de charge.

    Un mappage d'URL doit faire référence à un service de backend par défaut. Définissez le service de backend que vous venez de créer comme service par défaut.

    gcloud compute url-maps create URL_MAP_NAME \
      --default-service=DEFAULT_BACKEND_SERVICE_NAME \
      --global --project=$PROJECT_ID

    Remplacez les éléments suivants :

    • URL_MAP_NAME : nom du mappage d'URL.
    • DEFAULT_BACKEND_SERVICE_NAME : nom du service de backend par défaut de l'équilibreur de charge. La valeur par défaut est utilisée lorsqu'aucune règle d'hôte ne correspond au nom d'hôte demandé.
  6. Créez un certificat SSL pour le proxy cible HTTPS.

    Pour créer un équilibreur de charge HTTPS, vous devez disposer d'une ressource de certificat SSL à utiliser dans le proxy cible HTTPS. Vous pouvez créer une ressource de certificat SSL à l'aide d'un certificat SSL géré par Google ou d'un certificat SSL autogéré.

    Utilisez cette commande pour créer une ressource de certificat SSL géré par Google :

    gcloud compute ssl-certificates create CERTIFICATE \
      --domains DOMAIN --project=$PROJECT_ID

    Remplacez les éléments suivants :

    • CERTIFICATE : nom du certificat.
    • DOMAIN : nom de domaine que vous utiliserez pour l'équilibreur de charge externe.

    Pour créer un certificat SSL autogéré, vous avez besoin d'un fichier de clé privée locale et d'un fichier de certificat local. Si vous devez créer ces fichiers, consultez la section Utiliser des certificats SSL autogérés.

    gcloud compute ssl-certificates create CERTIFICATE \
      --certificate LB_CERT \
      --private-key LB_PRIVATE_KEY --project=$PROJECT_ID

    Remplacez les éléments suivants :

    • CERTIFICATE : nom du certificat.
    • LB_CERT : chemin d'accès au fichier de certificat au format PEM de votre certificat autogéré.
    • LB_PRIVATE_KEY : chemin d'accès au fichier de clé privée au format PEM pour votre certificat autogéré.
  7. Le provisionnement du certificat peut prendre jusqu'à une heure. Pour vérifier l'état du provisionnement, exécutez la commande suivante :

    gcloud compute ssl-certificates describe CERTIFICATE \
       --global \
       --format="get(name,managed.status, managed.Status)"
  8. Ajoutez le domaine au groupe d'environnements Apigee qui a été créé pour vous. Le nom du groupe d'environnements est eval-group :
    curl "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group" \
      -H "$AUTH" \
      -X PATCH \
      -H "Content-Type:application/json" \
      -d '{
        "hostnames":["'"DOMAIN"'"]
      }'
  9. Vérifiez l'état de l'opération du groupe d'environnements :
    curl -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups/eval-group/attachments"
    
  10. Utilisez la ressource de certificat SSL pour créer un proxy HTTPS cible.

    gcloud compute target-https-proxies create PROXY_NAME \
      --url-map=URL_MAP_NAME \
      --ssl-certificates=CERTIFICATE --project=$PROJECT_ID

    Remplacez les éléments suivants :

    • PROXY_NAME : nom du proxy HTTPS cible.
    • URL_MAP_NAME : nom du mappage d'URL.
    • CERTIFICATE : nom de la ressource de certificat.
  11. Créez la règle de transfert.
    gcloud compute forwarding-rules create FWD_RULE \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --network-tier=PREMIUM \
      --address=ADDRESS_NAME \
      --target-https-proxy=PROXY_NAME \
      --ports=443 \
      --global --project=$PROJECT_ID

    Remplacez les éléments suivants :

    • FWD_RULE : nom de la règle de transfert.
    • ADDRESS_NAME : ressource d'adresse IP que vous avez réservée pour la règle de transfert.
    • PROXY_NAME : nom du proxy HTTPS cible.

Le provisionnement d'Apigee est terminé.

Étape 6 : Appelez l'exemple de proxy d'API

Un proxy d'API appelé hello-world a été créé et déployé pour vous pendant le provisionnement. Au cours de cette étape, vous allez tester la nouvelle organisation d'évaluation en appelant le proxy.

Appeler le proxy avec un routage interne

Si vous avez choisi l'option de routage interne à l'étape 5, suivez les étapes décrites dans la section Appeler un proxy d'API avec un accès interne uniquement.

Appeler le proxy avec un routage externe

Si vous avez choisi l'option de routage externe à l'étape 5, suivez les étapes décrites dans cette section.

  1. Configurez une entrée DNS pour votre domaine. Pour ce faire, vous deux options s'offrent à vous :
    • Au niveau de votre bureau d'enregistrement, créez un enregistrement A pointant vers votre domaine. Par exemple, si votre domaine est sales.example.com et que l'adresse IP est 10.23.0.2, faites pointer l'enregistrement pour sales.example.com vers l'adresse 10.23.0.2.

      Exécutez la commande suivante pour afficher l'adresse IP réservée :

      gcloud compute addresses describe ADDRESS_NAME \
        --format="get(address)" --global --project=$PROJECT_ID
    • Utilisez Cloud DNS pour mapper une URL à une adresse IP.
  2. Vérifiez que le proxy hello-world est déployé :
    curl -i -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/environments/eval/apis/hello-world/revisions/1/deployments"
  3. Appelez le proxy d'API à l'aide de la commande suivante :

    Envoyez une requête au proxy d'API à partir de n'importe quel ordinateur connecté au réseau en exécutant la commande suivante :

    curl -i -H "Host: DOMAIN" \
      https://DOMAIN/hello-world

    DOMAIN est le domaine que vous avez saisi dans le certificat et ajouté au groupe d'environnements, comme indiqué à l'Étape 5 : Configurez le routage. Si nécessaire, vous pouvez utiliser cette API pour obtenir la valeur DOMAIN du groupe d'environnements :

    curl -i -H "$AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/envgroups"

    En cas de réussite, l'exemple de proxy d'API renvoie la réponse suivante :

    Hello, Guest!

    Conseils de dépannage

    Si vous obtenez une erreur de handshake, vérifiez l'état du certificat SSL. Pour en savoir plus sur le dépannage des certificats autogérés et gérés par Google, consultez la section Résoudre les problèmes liés aux certificats SSL.

    Assurez-vous que votre domaine enregistré possède un enregistrement A qui pointe vers l'adresse IP de l'adresse IPv4 externe globale créée à l'étape 5. Exécutez la commande suivante pour afficher l'adresse IP réservée :

    gcloud compute addresses describe ADDRESS_NAME \
      --format="get(address)" --global --project=$PROJECT_ID

    Si vous ne parvenez pas à résoudre la configuration du domaine, essayez d'appeler le proxy avec cette commande :

    curl  -H Host:DOMAIN --resolve \
      DOMAIN:443:EXTERNAL_IP_ADDRESS  \
      https://DOMAIN:443/hello-world -k

Étape suivante : Pour en savoir plus sur la création et le déploiement de proxys d'API, consultez la section Présentation de la création de votre premier proxy d'API.