Activer l'accès du synchronisateur
Pour activer l'accès du synchronisateur, procédez comme suit :
- Créez un compte de service Google Cloud et attribuez-lui le rôle Administrateur de l'organisation Apigee. Ce compte de service sera utilisé pour authentifier un appel d'API que vous effectuerez ultérieurement. La console GCP permet de créer facilement le compte de service.
Pour obtenir des instructions, consultez la page Créer et gérer des comptes de service dans la documentation de GCP.
Par exemple, les commandes
gcloud
suivantes créent le compte de service et lui attribuent le rôle Administrateur de l'organisation Apigee :- Créez le compte :
gcloud iam service-accounts create apigee-org-admin \ --display-name="apigee-org-admin"
Où apigee-org-admin est le nom du compte de service que vous créez. "
apigee-org-admin
" est recommandé pour ce tutoriel. - Attribuez le rôle Administrateur de l'organisation Apigee au compte de service :
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.admin"
Où :
- $PROJECT_ID est le nom du projet Google Cloud que vous avez créé à l'étape 2 : Créer un projet Google Cloud.
- apigee-org-admin est le nom du compte de service que vous venez de créer.
- Le rôle roles/apigee.admin correspond au rôle roles/apigee.admin.
- Créez le compte :
- Téléchargez la clé du compte de service sur votre système. Utilisez la commande suivante pour télécharger la clé dans votre répertoire
service-accounts/
. Pour en savoir plus, consultez les instructions de la section Créer des clés de compte de service de la documentation de GCP.- Assurez-vous que vous vous trouvez dans le répertoire
/hybrid-base-directory/hybrid-files/
. - Téléchargez la clé :
gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \ --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com
Le résultat devrait ressembler à ceci :
created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid- example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com] $
- Assurez-vous que vous vous trouvez dans le répertoire
- Vérifiez le chemin d'accès à la clé de compte de service Administrateur de l'organisation Apigee à l'aide de la commande suivante :
ls service-accounts/*admin*
Le résultat doit se présenter sous la forme suivante :
service-accounts/hybrid-example-apigee-org-admin.json
- Créez une variable d'environnement ORG_ADMIN_ACCOUNT contenant le nom du fichier de clé.
Par exemple :
export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
- Exécutez les commandes suivantes pour obtenir un jeton :
export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
export TOKEN=$(gcloud auth application-default print-access-token)
- Récupérez l'adresse e-mail de votre compte de service
apigee-synchronizer
à l'aide de la commande suivante :gcloud iam service-accounts list --filter "apigee-synchronizer"
Si elle correspond au modèle
apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com
, vous pouvez utiliser ce modèle à l'étape suivante. - Appelez l'API setSyncAuthorization afin d'activer les autorisations requises pour le synchronisateur à l'aide de la commande suivante :
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
Où :
$ORG_NAME
: nom de votre organisation hybride.apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com
: adresse e-mail associée au compte de service apigee-syncnronizer.
- Afin de vérifier que le compte de service a été défini, utilisez la commande suivante pour appeler l'API et obtenir une liste de comptes de service :
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:getSyncAuthorization" \ -d ''
La sortie ressemble à ceci :
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
Appliquer la configuration au cluster
Pour installer Apigee hybrid sur votre cluster, procédez comme suit :
- Vérifiez que vous êtes bien dans le répertoire
hybrid-base-directory/hybrid-files
. - Vérifiez que
kubectl
est défini sur le bon contexte à l'aide de la commande suivante. Le contexte actuel doit être défini sur le cluster au sein duquel vous déployez Apigee hybrid.kubectl config get-contexts
- Effectuez une simulation d'initialisation. Exécutez la commande
init
avec l'option--dry-run
. L'exécution d'une simulation vous permet de rechercher les erreurs éventuelles avant que des modifications ne soient apportées au cluster.Dans la version 1.3 d'Apigee hybrid, la syntaxe de l'option
--dry-run
dépend de la version dekubectl
que vous exécutez. Vérifiez la version dekubectl
à l'aide de la commande suivante :kubectl version
kubectl
version 1.17 et antérieure :$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true
kubectl
version 1.18 et ultérieure :$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
- Si aucune erreur ne s'affiche, exécutez la commande
init
comme suit :$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
La commande
init
installe les services de déploiement Apigee, le contrôleur de déploiement Apigee ainsi que le webhook d'admission Apigee. - Pour vérifier l'état du déploiement, vous pouvez exécuter les commandes suivantes :
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
kubectl get pods -n apigee-system
kubectl get pods -n istio-system
Lorsque les pods sont prêts, passez à l'étape suivante.
- Effectuez une simulation d'intallation. Exécutez la commande
apply
avec l'option--dry-run
.kubectl
version 1.17 et antérieure :$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
kubectl
version 1.18 et ultérieure :$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
- Si aucune erreur ne s'affiche, vous pouvez appliquer les composants d'exécution spécifiques à Apigee au cluster à l'aide de la commande suivante :
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- Pour vérifier l'état du déploiement, exécutez la commande suivante :
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
Répétez cette étape jusqu'à ce que tous les pods soient prêts. Le démarrage des pods peut prendre plusieurs minutes.
Activer Apigee Connect
Apigee Connect gère la communication entre le plan de gestion Apigee et le service MART dans le plan d'exécution. Pour en savoir plus, consultez la page Utiliser Apigee Connect.
Pour activer Apigee Connect, procédez comme suit :
-
Sur la ligne de commande, obtenez vos identifiants d'authentification
gcloud
, comme le montre l'exemple suivant :TOKEN=$(gcloud auth print-access-token)
Pour vérifier que votre jeton a été renseigné, utilisez
echo
, comme le montre l'exemple suivant :echo $TOKEN
Votre jeton doit s'afficher sous forme de chaîne encodée.
Pour en savoir plus, consultez la section présentation de l'outil de ligne de commande gcloud.
- Utilisez la commande suivante pour vérifier si Apigee Connect est activé pour votre organisation.
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
Où $ORG_NAME est l'ID de votre organisation.
Si le résultat contient les éléments suivants :
"name" : "features.mart.connect.enabled", "value" : "true"
Apigee Connect est activé. Vous pouvez ignorer le reste de cette section.
- Activez Apigee Connect à l'aide de la commande suivante :
curl -H "Authorization: Bearer $TOKEN" -X PUT \ -H "Content-Type: application/json" \ -d '{ "name" : "'"$ORG_NAME"'", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.connect.enabled", "value" : "true" } ] } }' \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
Si le résultat contient les propriétés suivantes, Apigee Connect a bien été activé :
{ "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" }
Le résultat doit se présenter sous la forme suivante :
{ "name": "hybrid-example-2", "createdAt": "1594409699772", "lastModifiedAt": "1594776283697", "environments": [ "example-env" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "analyticsRegion": "us-central1", "runtimeType": "HYBRID", "subscriptionType": "TRIAL" }