Ce document explique comment installer et configurer Apigee à partir de la ligne de commande, avec appairage de VPC. Ces étapes s'appliquent aux modèles de tarification par abonnement et par paiement à l'usage, pour les organisations payantes, avec ou sans résidence des données activée.
Résumé des étapes
Les étapes de provisionnement sont les suivantes :
Étape 1 : Définissez des variables d'environnement : configurez gcloud définissez des variables d'environnement.
Google Cloud CLI gère l'authentification, la configuration locale, le workflow du développeur et les interactions avec les API Google Cloud.
Étape 4 : Configurez la mise en réseau des services : la mise en réseau des services automatise la configuration de la connectivité privée (à l'aide de l'appairage de réseaux VPC) entre votre réseau et Apigee.
Étape 5 : Créez une organisation : une organisation Apigee (parfois appelée "org") est le conteneur de niveau supérieur dans Apigee. Elle comprend tous vos environnements et groupes d'environnement, vos utilisateurs, vos proxy d'API et les ressources associées.
Étape 6 : Créez une instance d'exécution : votre instance ou environnement d'exécution correspond à l'emplacement de stockage de votre projet et des services associés. Il fournit le point de terminaison aux utilisateurs pour vos services.
Étape 7 : Créez un environnement : un proxy d'API doit être déployé sur un environnement et ajouté à un groupe d'environnements pour que les API exposées soient accessibles sur le réseau.
Étape 1 : Définissez des variables d'environnement
Configurez gcloud et définissez les variables d'environnement à utiliser dans les étapes suivantes :
Assurez-vous de respecter les exigences de configuration répertoriées dans la section Avant de commencer.
Le SDK Cloud doit être installé. Si vous devez l'installer, consultez la page Installer le SDK Cloud.
Initialisez le SDK Cloud comme décrit sur la page Initialiser gcloud CLI ou vérifiez que le projet Google Cloud que vous avez créé dans la section Prérequis est le projet par défaut pour gcloud.
Définissez les variables d'environnement suivantes dans votre terminal de commande.
Sélectionnez l'onglet correspondant au type d'organisation dont vous avez besoin : Sans résidence des données ou avec Résidence des données :
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.
PROJECT_NUMBER est le numéro du projet Cloud que vous avez créé dans la section Prérequis.
RUNTIME_LOCATION est l'emplacement physique dans lequel se trouve l'instance Apigee que vous allez créer plus tard. Pour obtenir la liste des emplacements d'exécution disponibles, consultez la section 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.
BILLING_TYPE est le type de facturation pour l'organisation que vous créez. Les valeurs possibles sont les suivantes :
PAYG pour les organisations utilisant le Pay-as-you-go.
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.
PROJECT_NUMBER est le numéro du projet Cloud que vous avez créé dans la section Prérequis.
RUNTIME_LOCATION est l'emplacement physique dans lequel se trouve l'instance Apigee que vous allez créer plus tard. Pour obtenir la liste des emplacements d'exécution disponibles, consultez la section Emplacements Apigee.
L'emplacement d'exécution doit se trouver dans l'emplacement du plan de contrôle.
CONTROL_PLANE_LOCATION est l'emplacement physique dans lequel les données du plan de contrôle Apigee seront stockées.
Pour obtenir la liste des emplacements du plan de contrôle disponibles, consultez la section Emplacements Apigee.
CONSUMER_DATA_REGION est une sous-région de la région du plan de contrôle. Vous devez spécifier les paramètres CONTROL_PLANE_LOCATION et CONSUMER_DATA_REGION.
Pour obtenir la liste des régions de données client disponibles, consultez la section Emplacements Apigee.
BILLING_TYPE est le type de facturation pour l'organisation que vous créez. Les valeurs possibles sont les suivantes :
PAYG pour les organisations utilisant le Pay-as-you-go.
(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 ($).
Les réponses à vos commandes echo doivent se présenter comme suit :
YOUR_TOKEN
my-cloud-project
1234567890
us-west1
us
us-west1
SUBSCRIPTION
Étape 2 : Activez les API
Autorisations requises pour cette tâche
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège. Consultez les sections Rôles prédéfinis et Autorisations d'activation des API.
Apigee requiert l'activation de plusieurs API Google Cloud. Activez-les en exécutant la commande services enable suivante :
Vérifiez que l'agent a bien été créé. La réponse doit présenter le nom de l'agent au format suivant : service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com.
par exemple :
Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
Étape 4 : Configurez la mise en réseau des services
Au cours de cette étape, vous allez allouer une paire de plages d'adresses IP (une plage CIDR /22 et /28) à Apigee, puis effectuer l'appairage de VPC entre votre réseau et le réseau d'Apigee. Chaque instance Apigee nécessite une plage CIDR /22 et /28 sans chevauchement. Les adresses IP de cette plage CIDR sont attribuées au plan d'exécution Apigee. Par conséquent, il est important que la plage soit réservée à Apigee et qu'elle ne soit pas utilisée par d'autres applications dans votre réseau VPC. Pour plus d'informations et des considérations importantes, consultez la page Comprendre les plages d'appairage.
Notez que vous créez une plage d'adresses IP réseau suffisante pour une seule instance Apigee. Si vous envisagez de créer des instances Apigee supplémentaires, vous devez répéter cette étape pour chacune d'elles. Les plages ne peuvent pas être partagées entre plusieurs instances. Consultez également la section Étendre Apigee dans plusieurs régions.
Autorisations requises pour cette tâche
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège. Consultez les pages Rôles prédéfinis et Autorisations de mise en réseau de services.
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.
Créez une plage d'adresses IP réseau avec une longueur CIDR de /22 :
Où --addresses vous permet de spécifier une plage d'adresses, si vous le souhaitez. 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.
Vérifiez que la plage d'adresses IP du réseau a été créée avec une longueur CIDR de /22 :
Créez une plage d'adresses IP réseau avec une longueur CIDR de /28 : Cette plage est obligatoire. Elle est utilisée par Apigee à des fins de dépannage et ne peut être ni personnalisée ni modifiée.
Où --addresses vous permet de spécifier une plage d'adresses, si vous le souhaitez. 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.
Vérifiez que la plage d'adresses IP du réseau a été créée avec une longueur CIDR de /28 :
Cette opération peut prendre plusieurs minutes. En cas de réussite, gcloud renvoie la réponse suivante, où OPERATION_ID correspond à 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'VPC. Apigee associe également des adresses IP à votre projet.
Après quelques minutes, vérifiez si l'appairage de VPC a réussi :
gcloud services vpc-peerings list \
--network=$NETWORK_NAME \
--service=servicenetworking.googleapis.com \
--project=$PROJECT_ID
Étape 5 : Créez une organisation
Autorisations requises pour cette tâche
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège. Consultez les pages suivantes :
Avant de pouvoir créer une organisation, vous devez créer un trousseau de clés et une clé de chiffrement de la base de données d'exécution (voir étape 1) et, si vous utilisez la résidence des données, les clés et les trousseaux de clés de chiffrement du plan de contrôle (voir l'étape 2). Ces clés Cloud KMS chiffrent les données stockées et répliquées dans des emplacements d'exécution et de plan de contrôle. Apigee utilise ces entités pour chiffrer les données d'application, telles que les KVM, le cache et les codes secrets des clients, qui sont ensuite stockées dans la base de données. Pour plus d'informations, voir À propos des clés de chiffrement Apigee.
Créez un trousseau de clés et une clé de chiffrement de la base de données d'exécution :
Définissez une variable d'environnement pour l'emplacement du trousseau de clés et de la clé de chiffrement de la base de données d'exécution. Cela permet de garantir la cohérence lorsque vous les créez et facilite le suivi dans la documentation.
La valeur est l'emplacement physique où sont stockés le trousseau de clés et la clé de chiffrement de la base de données d'exécution.
Région unique
Configurations dans une seule région (dans lesquelles vous ne disposez que d'une seule instance dans une région) : choisissez parmi les emplacements régionaux KMS compatibles.
Exemple :
RUNTIMEDBKEY_LOCATION="us-west1"
Cette valeur peut être identique à votre valeur $RUNTIME_LOCATION (également une région), mais ce n'est pas une obligation. Toutefois, si elles sont identiques, cela peut améliorer les performances.
Si vous disposez d'une configuration multirégionale aux États-Unis, nous vous recommandons d'utiliser us pour votre emplacement si possible. Sinon, utilisez nam4.
Définissez des variables d'environnement pour les noms de clés et du trousseau de clés de la base de données.
Le nom du trousseau de clés doit être unique au sein de votre organisation. Si vous créez une deuxième région ou plus, le nom ne peut pas être identique à celui des autres trousseaux de clés.
(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 ($).
L'emplacement de la clé de chiffrement de la base de données d'exécution Apigee est compatible avec tous les emplacements Cloud KMS qui acceptent Cloud HSM et Cloud EKM.
Cette commande associe la clé à l'agent de service Apigee.
Si la requête réussit, gcloud envoie une réponse semblable à celle-ci :
Updated IAM policy for key [runtime].
bindings:
- members:
- serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
role: roles/cloudkms.cryptoKeyEncrypterDecrypter
etag: BwWqgEuCuwk=
version: 1
Si vous obtenez une erreur semblable à celle-ci :
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
Assurez-vous d'avoir utilisé le numéro du projet, et non le nom du projet dans l'adresse e-mail du compte de service.
Si vous utilisez la résidence des données, créez un trousseau de clés et une clé de chiffrement du plan de contrôle. Si vous n'utilisez pas la résidence des données, passez à l'étape 3.
Pour créer un trousseau de clés et une clé de chiffrement du plan de contrôle, procédez comme suit.
Définissez une variable d'environnement pour l'emplacement du trousseau de clés et de la clé de chiffrement de la base de données du plan de contrôle :
CONTROL_PLANE_LOCATION est l'emplacement physique dans lequel les données du plan de contrôle Apigee seront stockées.
Pour obtenir la liste des emplacements du plan de contrôle disponibles, consultez la section Emplacements Apigee.
CONSUMER_DATA_REGION est une sous-région de la région du plan de contrôle. Vous devez spécifier les paramètres CONTROL_PLANE_LOCATION et CONSUMER_DATA_REGION.
Pour obtenir la liste des régions de données client disponibles, consultez la section Emplacements Apigee.
Définissez des variables d'environnement pour les noms de clés et du trousseau de clés du plan de contrôle.
Le nom du trousseau de clés doit être unique au sein de votre organisation.
CONTROL_PLANE_KEY_RING_NAME est le nom du trousseau de clés que vous utilisez pour identifier votre trousseau de clés de chiffrement du plan de contrôle.
CONTROL_PLANE_KEY_NAME est le nom de la clé que vous utiliserez pour identifier votre clé de chiffrement du plan de contrôle.
CONSUMER_DATA_KEY_RING_NAME est le nom du trousseau de clés que vous utilisez pour identifier votre trousseau de clés de chiffrement des régions des données client.
CONSUMER_DATA_KEY_NAME est le nom de la clé que vous utiliserez pour identifier votre clé de chiffrement de la région de données client.
runtimeDatabaseEncryptionKeyName : ID de la clé de chiffrement de l'application que vous avez créée à l'étape précédente. Rappelez-vous que l'ID est structuré comme le chemin d'accès d'un fichier. Exemple : projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
-d définit la charge utile des données pour la requête. Cette charge utile doit inclure les éléments suivants :
name : identifie votre nouvelle organisation. Il doit s'agir du même nom que votre ID de projet.
runtimeType : définissez cette valeur sur CLOUD.
billingType : spécifie le type de facturation de l'organisation créée.
controlPlaneEncryptionKeyName : est l'ID de votre clé de plan de contrôle.
apiConsumerDataLocation : vous devez également spécifier une sous-région pour l'utilisation par les ressources internes. Consultez la section Régions de résidence des données pour connaître les valeurs acceptées.
apiConsumerDataEncryptionKeyName : est votre ID de clé de région des données client.
runtimeDatabaseEncryptionKeyName : ID de la clé de chiffrement de l'application que vous avez créée à l'étape précédente. Rappelez-vous que l'ID est structuré comme le chemin d'accès d'un fichier. Par exemple : projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Une fois cette commande exécutée, Apigee démarre une opération de longue durée, qui peut prendre quelques minutes.
Si vous obtenez une erreur, vérifiez l'utilisation de guillemets autour des valeurs des variables dans la charge utile des données. Assurez-vous d'utiliser des guillemets doubles-simples-doubles autour de la variable $PROJECT_ID, comme illustré dans l'exemple suivant :
"'"$PROJECT_ID"'"
Si vous utilisez des chaînes brutes (et non des variables d'environnement) pour les valeurs de requête, vous pouvez les encapsuler entre guillemets doubles dans la chaîne de charge utile entre guillemets simples, comme le montre l'exemple suivant :
'{ "name":"my-gcp-project", ... }'
Attendez quelques minutes.
Pour vérifier l'état de votre requête de création, vous pouvez envoyer une requête GET à l'API List organizations d'Apigee, comme illustré dans l'exemple suivant :
Si la réponse suivante s'affiche, cela signifie que la création de l'organisation n'est pas encore terminée :
{
"error": {
"code": 403,
"message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)",
"status": "PERMISSION_DENIED"
}
}
Si Apigee réussit à créer une organisation, vous obtenez une réponse semblable à celle-ci :
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège. Consultez les sections Rôles prédéfinis et Autorisations d'instance d'exécution.
Une instance d'environnement d'exécution correspond à l'emplacement de stockage de votre projet Apigee et des services associés. Elle fournit le point de terminaison aux utilisateurs pour vos services. Pour créer une instance d'environnement d'exécution, procédez comme suit :
Vérifiez qu'Apigee a fini de créer votre organisation. Vous avez envoyé une requête pour créer une organisation à l'étape Créez une organisation Apigee, mais vous devez vous assurer que la création est terminée avant de poursuivre.
Si l'organisation existe (et que vous disposez des autorisations appropriées pour l'afficher), Apigee envoie des détails. Si Apigee renvoie un message d'erreur, attendez quelques minutes et renvoyez la requête.
Comme pour la tâche précédente où vous avez créé une clé de chiffrement pour la base de données, vous devez maintenant créer une clé Cloud KMS servant à chiffrer les données côté serveur.
Pour commencer, définissez les variables d'environnement suivantes :
INSTANCE_NAME : nom de votre nouvelle instance. Par exemple, my-runtime-instance. Le nom doit commencer par une lettre minuscule, peut comporter jusqu'à 32 caractères et ne peut contenir que des lettres minuscules, des chiffres et des traits d'union. Il ne peut pas commencer, ni se terminer par un trait d'union et doit comporter au moins deux caractères.
RUNTIME_LOCATION est l'emplacement physique dans lequel votre cluster est hébergé.
Les valeurs valides correspondent à tout emplacement autorisé par Compute Engine. (Consultez la page Régions et zones disponibles.) Cet exemple utilise us-west1.
DISK_KEY_RING_NAME est le nom du trousseau de clés de chiffrement du disque.
DISK_KEY_NAME est le nom de la clé de chiffrement du disque.
Votre trousseau de clés de disque doit être défini sur le même emplacement que l'instance. Chaque instance et chaque trousseau de clés doit avoir son propre emplacement.
consumerAcceptList (Facultatif) Spécifie une liste d'ID de projet Google Cloud pouvant se connecter en privé au rattachement de service du VPC Apigee. Le rattachement de service est une entité utilisée avec Private Service Connect de Google Cloud pour permettre aux producteurs de services (dans ce cas, Apigee) d'exposer des services aux consommateurs (dans ce cas, un ou plusieurs projets Cloud que vous possédez).
Par défaut, nous utilisons le projet Cloud qui est déjà associé à votre organisation Apigee. Par exemple : "consumerAcceptList": ["project1", "project2", "project3"]
Notez que vous pouvez également définir et modifier la liste des projets acceptés dans l'interface utilisateur de l'instance. Pour en savoir plus, consultez la page Gérer les instances.
Cette requête peut prendre jusqu'à 20 minutes, car Apigee doit créer et lancer un nouveau cluster Kubernetes, installer les ressources Apigee sur ce cluster et configurer l'équilibrage de charge.
Pour vérifier l'état de votre requête de création d'instance d'exécution, exécutez la commande suivante. Lorsque l'état est ACTIF, vous pouvez passer à l'étape suivante.
Sans résidence des données
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"
Résidence des données
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances/$INSTANCE_NAME"
Étape 7 : Créez un environnement
Autorisations requises pour cette tâche
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège. Consultez les pages suivantes :
Pour créer un environnement et l'associer à l'environnement d'exécution sur la ligne de commande, procédez comme suit :
Définissez les variables d'environnement à utiliser dans cette section. Les variables d'environnement spécifiques que vous créez varient selon que vous créez un environnement pour une organisation avec abonnement ou paiement à l'usage.
Abonnement
Pour un environnement avec abonnement, créez les variables suivantes :
ENVIRONMENT_NAME correspond à un nom de chaîne. Par exemple : test
ENVIRONMENT_TYPE est le type d'environnement pour cet environnement et ne s'applique qu'aux utilisateurs qui disposent d'un Pay-as-you-go qui doivent spécifier l'une des valeurs suivantes : BASE, INTERMEDIATE ou COMPREHENSIVE. Les autres utilisateurs doivent omettre le type d'environnement.
ENV_GROUP_NAME correspond à un nom de chaîne. Par exemple : test-group
ENV_GROUP_HOSTNAME est le nom d'un hébergeur de domaine valide. Par exemple : foo.example.com
Créez un nouvel environnement avec l'API Environnements. Les commandes spécifiques à utiliser varient selon que vous créez un environnement pour une organisation avec abonnement ou paiement à l'usage.
Abonnement
Pour un nouvel environnement avec abonnement, exécutez la commande suivante :
Au cours de cette étape, vous allez configurer la manière dont les applications clientes communiquent avec Apigee. Le trafic client vers Apigee est également appelé trafic "Northbound". Les options de configuration Northbound incluent les éléments suivants.
Accédez à l'option de configuration que vous souhaitez utiliser et suivez les étapes correspondantes :
Type d'accès
Description du processus de configuration et de déploiement
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.
Utilisez un groupe d'instances géré (MIG) pour envoyer le trafic des API du service de backend d'un équilibreur de charge global à Apigee. Avec cette configuration, Apigee ne peut se connecter qu'au VPC appairé. 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.
N'autorisez l'accès interne à vos proxys d'API que depuis l'un de vos projets Google Cloud utilisant Private Service Connect (PSC).
PSC permet d'établir une 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 point de terminaison de service ou par un équilibreur de charge interne régional vers un même point de rattachement (que l'on appelle un rattachement de service).
Cette configuration permet à vos clients internes d'envoyer des requêtes de proxy d'API Apigee à partir de n'importe quelle machine compatible avec le réseau.
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 ou par un équilibreur de charge externe régional vers un même point de rattachement (que l'on appelle un 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 dans les instructions ci-dessous.
Routage interne (VPC)
Pour le routage du trafic des clients internes vers Apigee, vous pouvez choisir d'utiliser la terminaison TLS ou non :
Options TLS : vous avez le choix entre deux appels proxy d'API à partir de clients internes pour lesquels TLS est activé :
(Option 1) Configurez un équilibreur de charge interne (ILB) :
Créez un groupe d'instances géré (MIG) dans votre projet. Pour créer le groupe d'instances géré, suivez les étapes 8a, 8b et 8c dans l'onglet Routage externe (MIG).
Créez et configurez un équilibreur de charge HTTPS(S) interne, puis associez le MIG que vous avez créé au service de backend de l'équilibreur de charge interne, comme expliqué dans la section Configurer un équilibrage de charge HTTP(S) interne avec les backends de groupes d'instances de VM. Avec la configuration ILB, vous disposez d'un contrôle total sur les certificats CA utilisés avec l'ILB.
(Option 2) Utilisez le nom de domaine complet interne par défaut et l'adresse IP de l'équilibreur de charge interne de l'instance Apigee. Cette configuration n'est recommandée qu'à des fins de test et non pour un environnement de production. Dans ce cas, les certificats autosignés créés par Apigee sont utilisés avec l'équilibreur de charge interne d'Apigee et vous ne pouvez pas les modifier. Consultez la page Appeler un proxy d'API avec accès interne uniquement.
Option non-TLS : si vous n'avez pas besoin d'activer la terminaison TLS, vous pouvez appeler des proxys d'API dans lesquels le client désactive TLS. Par exemple, en utilisant l'option -k avec cURL, vous pouvez désactiver TLS. Consultez la page Appeler un proxy d'API avec accès interne uniquement.
Routage externe (MIG)
Cette section explique comment configurer le routage pour autoriser l'accès externe aux proxys d'API à l'aide d'un groupe d'instances géré (MIG) pour envoyer le trafic d'API à partir du service de backend d'un équilibreur de charge global vers Apigee. 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.
Autorisations requises pour cette tâche
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège.
Consultez les sections Rôles prédéfinis et Autorisations de routage des accès.
Étape 8b : Configurez des variables d'environnement
Les instructions de cette section utilisent des variables d'environnement pour faire référence à des chaînes utilisées de manière répétée. Nous vous recommandons de les définir avant de continuer :
MIG_NAME=apigee-mig-MIG_NAME # You can choose a different name if you like
VPC_NAME=default # If you are using a shared VPC, use the shared VPC nameVPC_SUBNET=default # Private Google Access must be enabled for this subnetREGION=RUNTIME_REGION # The same region as your Apigee runtime instanceAPIGEE_ENDPOINT=APIGEE_INSTANCE_IP # See the tip below for details on getting this IP address value
Vous utiliserez ces variables plusieurs fois au cours des processus restants. Si vous souhaitez configurer plusieurs régions, créez des variables avec des valeurs spécifiques à chaque région.
Étape 8c : Créez un groupe d'instances géré
Au cours de cette étape, vous allez créer et configurer un groupe d'instances géré. Lors d'une prochaine étape, vous ajouterez le MIG à un service de backend associé à un équilibreur de charge global. Un groupe d'instances géré est requis pour envoyer le trafic d'API du service de backend de l'équilibreur de charge global à Apigee.
Comme vous pouvez le voir avec cette commande, les machines sont de type e2-medium. Elles exécutent Debian 10 et disposent de 20 Go d'espace disque. Le script startup-script.sh configure le groupe d'instances géré pour acheminer le trafic entrant de l'équilibreur de charge vers l'instance Apigee.
Étape 8d : Créez un certificat SSL et une clé pour l'équilibreur de charge
Vous ne devez créer les identifiants qu'une seule fois, que vous procédiez à l'installation dans une ou plusieurs régions. Lors d'une prochaine étape, vous associerez ces identifiants au proxy HTTPS cible de l'équilibreur de charge.
Vous pouvez créer les identifiants avec :
Votre propre certificat émis par une autorité de certification
Définissez DOMAIN_HOSTNAME sur un nom d'hôte de domaine valide que vous avez enregistré. Lors d'une prochaine étape, vous obtiendrez l'adresse IP de l'équilibreur de charge et mettrez à jour l'enregistrement A du domaine afin qu'il pointe vers cette adresse. Par exemple, un nom d'hôte de domaine pourrait ressembler à ceci : foo.example.com.
Cette vérification d'état vous permettra de vous assurer que le service de backend est en cours d'exécution. Pour configurer des vérifications d'état plus avancées sur un proxy spécifique, consultez la page Effectuer des vérifications d'état.
Étape 8f : Obtenez une adresse IP réservée et créez des règles de pare-feu
Vous devez attribuer une adresse IP à l'équilibreur de charge, puis créer des règles permettant à l'équilibreur de charge d'accéder au groupe d'instances géré. Vous ne devez effectuer cette étape qu'une seule fois, que vous procédiez à l'installation dans une ou plusieurs régions.
Étape importante : Accédez au site, à l'hôte DNS ou au FAI sur lequel vos enregistrements DNS sont gérés, et assurez-vous que l'enregistrement DNS de votre domaine renvoie l'adresse IP de l'équilibreur de charge Google Cloud. Cette adresse est la valeur de l'adresse IP renvoyée à la dernière étape. Pour en savoir plus, consultez la section Mettre à jour les enregistrements DNS A et AAAA pour qu'ils pointent vers l'adresse IP de l'équilibreur de charge.
Créez une règle de pare-feu qui permet à l'équilibreur de charge d'accéder au groupe d'instances géré à l'aide de la commande suivante :
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \
--project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \
--source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy
Notez que les plages d'adresses IP 130.211.0.0/22 et 35.191.0.0/16 sont les plages d'adresses IP sources pour Google Load Balancing. Cette règle de pare-feu permet à Google Cloud Load Balancing de passer des requêtes de vérification d'état au groupe d'instances géré.
Cette section explique comment n'autoriser l'accès interne à vos proxys API que depuis vos projets Google Cloud utilisant Private Service Connect (PSC).
Deux options s'offrent à vous pour configurer l'accès interne avec PSC :
Point de terminaison de service : les requêtes transitent par un point de terminaison de service vers un point de rattachement unique (que l'on appelle rattachement de service).
Équilibreur de charge régional interne : les requêtes transitent par un équilibreur de charge HTTP(S) interne régional. Consultez également la section Équilibrage de charge global ou régional.
Sélectionnez l'onglet ci-dessous pour votre choix de configuration et suivez les étapes :
Point de terminaison de service
Autorisations requises pour cette tâche
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège.
Consultez les sections Rôles prédéfinis et Autorisations de routage des accès.
Créer un point de terminaison de service PSC pour le rattachement de service
Récupérez le rattachement de service à partir de l'instance que vous avez créée précédemment :
Sans résidence des données
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Résidence des données
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Dans l'exemple de résultat suivant, la valeur serviceAttachment est indiquée en gras :
Créez un point de terminaison de service PSC qui pointe vers le rattachement de service obtenu à partir du corps de réponse de l'instance à l'étape précédente, comme expliqué dans la section Créer un point de terminaison Private Service Connect.
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège.
Consultez les sections Rôles prédéfinis et Autorisations de routage des accès.
Étape 8a : Configurer les variables d'environnement
Les instructions de cette section utilisent des variables d'environnement pour faire référence à des chaînes utilisées de manière répétée. Assurez-vous d'avoir défini les variables de la section Définir des variables d'environnement.
De plus, définissez les variables d'environnement suivantes :
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
NETWORK_NAME (facultatif) : nom du réseau dans lequel le NEG est créé. Si vous omettez ce paramètre, le réseau de projet default est utilisé.
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éé.
Créez un 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.
$PROJECT_ID peut être le projet Cloud déjà associé à votre organisation Apigee, ou le projet Cloud inclus dans consumerAcceptlist lors de la création de l'instance d'exécution Apigee.
Étape 8d : Configurer l'équilibreur de charge interne régional
Réservez une adresse IPv4 interne pour l'équilibreur de charge.
NEG_NAME : nom du groupe de points de terminaison du réseau.
Remplacez BACKEND_SERVICE_NAME par le nom du service de backend.
Pour créer un équilibreur de charge HTTPS, vous devez disposer d'une ressource de certificat SSL à utiliser dans le proxy cible HTTPS.
Utilisez cette commande pour créer une ressource de certificat SSL autogéré. Pour créer un certificat SSL autogéré, vous avez besoin d'un fichier de clé privée local et d'un fichier de certificat local. Si vous devez créer ces fichiers, consultez l'étape 1 de la page sur l'utilisation des certificats SSL autogérés.
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é.
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.
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é.
Utilisez la ressource de certificat SSL pour créer un proxy HTTPS cible.
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.
Autorisations requises pour cette tâche
Vous pouvez attribuer à l'approvisionneur Apigee un rôle prédéfini qui inclut les autorisations nécessaires pour effectuer cette tâche, ou définir des autorisations plus précises selon le principe du moindre privilège.
Consultez les sections Rôles prédéfinis et Autorisations de routage des accès.
Étape 8b : Créer un NEG et configurer l'équilibreur de charge
Vous pouvez créer un équilibreur de charge global ou régional.
Créez un 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.
NEG_NAME : nom du groupe de points de terminaison du réseau.
TARGET_SERVICE : rattachement de service auquel vous souhaitez vous connecter. Utilisez la valeur du rattachement de service renvoyée par la commande précédente. Par exemple : projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
NETWORK_NAME (facultatif) : nom du réseau dans lequel le NEG est créé. Si vous omettez ce paramètre, le réseau de projet default est utilisé.
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éé.
$PROJECT_ID Le projet Cloud déjà associé à votre organisation Apigee, ou le projet Cloud inclus dans consumerAcceptlist lors de la création de l'instance d'exécution Apigee.
Si vous ne l'avez pas déjà fait, créez une variable d'environnement destinée à contenir l'ID de projet, car il sera utilisé dans la plupart des commandes suivantes.
Réservez une adresse IPv4 externe globale pour l'équilibreur de charge.
NEG_NAME : nom du groupe de points de terminaison du réseau.
REGION : région du groupe de points de terminaison du réseau.
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.
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é.
Créez le proxy HTTPS cible.
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é. L'utilisation de certificats gérés par Google est recommandée, car Google Cloud obtient, gère et renouvelle automatiquement ces certificats.
DOMAIN : nom de domaine de votre équilibreur de charge
Utilisez cette commande pour créer une ressource de certificat SSL autogéré. 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 l'étape 1 de la page sur l'utilisation des certificats SSL autogérés.
(Facultatif) NETWORK_NAME : nom du réseau dans lequel le sous-réseau est créé. Si vous omettez ce paramètre, le réseau par défaut du projet est utilisé.
Récupérez le rattachement de service à partir de l'instance que vous avez créée précédemment :
Sans résidence des données
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Résidence des données
curl -i -X GET -H "Authorization: Bearer $AUTH" \
"https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"
Dans l'exemple de résultat suivant, la valeur serviceAttachment est indiquée en gras :
NEG_NAME : nom du groupe de points de terminaison du réseau.
TARGET_SERVICE : nom du rattachement de service auquel vous souhaitez vous connecter.
Par exemple : projects/bfac7497a40c32a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw7
NEG_NAME : nom du groupe de points de terminaison du réseau.
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.
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é.
Créez le proxy HTTPS cible.
Pour créer un équilibreur de charge HTTPS, vous devez disposer d'une ressource de certificat SSL à utiliser dans le proxy cible HTTPS.
Utilisez cette commande pour créer une ressource de certificat SSL autogéré. 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 l'étape 1 de la page sur l'utilisation des certificats SSL autogérés.
La création et le déploiement de proxys nécessitent un ensemble minimal d'autorisations. Si vous disposez du rôle d'administrateur de l'organisation Apigee, vous pouvez effectuer cette tâche. Pour en savoir plus sur les autres rôles que vous pouvez utiliser, consultez la page sur les rôles Apigee.
Téléchargez l'exemple de proxy depuis GitHub. La cible du proxy est le service httpbin.org, qui est un service de requête et de réponse public couramment utilisé.
Importez le groupe de proxys d'API dans l'environnement d'exécution à l'aide de l'API Apigee apis :
Si vous obtenez une erreur du type CONNECT_CR_SRVR_HELLO:sslv3 alert handshake failure, vérifiez que le certificat SSL que vous avez créé précédemment a été provisionné.
Exécutez cette commande pour vérifier l'état du provisionnement. Une fois le certificat provisionné, son état est ACTIVE.
Pour en savoir plus sur le déploiement des proxys, y compris pour obtenir des informations supplémentaires sur le dépannage, consultez la page Déployer un proxy d'API.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/18 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/11/18 (UTC)."],[],[]]