Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X. info
Cet exemple montre comment utiliser Apigee Adapter for Envoy avec Apigee Edge.
Prérequis
Avant de commencer : |
---|
Présentation
Cet exemple explique comment utiliser Apigee Adapter for Envoy avec Apigee Edge for Public Cloud. Les appels de proxy d'API passent par Envoy s'exécutant en tant qu'application native, Edge fournissant des services de gestion d'API via le service à distance Apigee pour Envoy.
Provisionner Apigee Edge
Au cours de cette étape, vous allez utiliser la CLI des services distants pour provisionner les éléments Apigee Adapter for Envoy dans Apigee Edge. La commande de provisionnement déploie un proxy d'API sur Apigee Edge, configure également un certificat sur Apigee et génère des identifiants que le service distant utilisera pour se connecter en toute sécurité de votre système à Apigee.
- Accédez au répertoire
$CLI_HOME
:cd $CLI_HOME
- Créez les variables d'environnement suivantes. Ces variables seront utilisées en tant que paramètres du script de provisionnement :
export ORG=organization_name
export ENV=environment_name
export USER=your_apigee_username
export PASSWORD=your_apigee_password
Où :
Variable Description organization_name Nom de votre organisation Apigee environment_name Nom d'un environnement dans votre organisation your_apigee_username Nom d'utilisateur de votre compte Apigee. Il s'agit généralement d'une adresse e-mail. your_apigee_password Votre mot de passe Apigee. - Exécutez la commande suivante pour provisionner le proxy de service distant sur Apigee Edge :
Si vous n'effectuez pas la mise à niveau, utilisez cette commande pour provisionner Apigee :
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
Si vous mettez à niveau, exécutez cette commande avec l'option
--force-proxy-install
pour provisionner Apigee :$CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
- Vérifiez le contenu du fichier
config.yaml
. Elle doit ressembler à ceci :# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75 ...
Les valeurs de clé et de secret sont utilisées pour valider les requêtes du proxy de service distant vers Apigee Edge.
Exécuter le service Apigee Remote Service pour Envoy
Vous pouvez exécuter Remote Service en tant que binaire natif ou sur Docker.
Exécuter le service de manière native
Exécutez le binaire du service avec le fichier de configuration généré par la commande de provisionnement :
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Exécuter le service sur Docker
Les images Docker sont publiées avec des tags de version. Pour cette installation, utilisez la dernière version. Il existe trois variantes d'image :
Variante | Image |
---|---|
Distroless Google | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
Ubuntu avec Boring Crypto | google/apigee-envoy-adapter:v2.0.0-boring |
Par exemple, pour exécuter l'image test avec votre fichier config.yaml
local disponible sous le nom /config.yaml
via une installation de volume, utilisez la commande suivante :
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0
Créer des exemples de fichiers de configuration
Générez un fichier de configuration Envoy à l'aide de la CLI:
- Assurez-vous que vous vous trouvez dans le répertoire
$ENVOY_HOME
. - Répertoriez les modèles de configuration disponibles :
$CLI_HOME/apigee-remote-service-cli samples templates
Exécutez la commande d'exemples. Remplacez TEMPLATE par l'un des modèles Envoy compatibles :
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
La commande crée le fichier
./samples/envoy-config.yaml
.
Pour en savoir plus, consultez la section Commande d'exemples.
Installer et exécuter le proxy Envoy
Pour installer et exécuter le proxy Envoy, procédez comme suit :
- Téléchargez un binaire Envoy, créez-le ou utilisez Docker.
- Exécutez Envoy à l'aide d'un exemple de fichier de configuration que vous avez généré précédemment pour le service
httpbin.org
:envoy -c ./samples/envoy-config.yaml
Tester l'installation
- Configurez un produit d'API et obtenez une clé API comme expliqué dans la section Comment obtenir une clé API.
- Appelez le service
httpbin
sans clé API :curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
Le service est désormais géré par Apigee, et puisque vous n'avez pas fourni de clé API, cet appel renvoie l'erreur suivante.
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" HTTP/1.1 403 Forbidden date: Tue, 12 May 2020 17:51:36 GMT server: envoy content-length: 0 x-envoy-upstream-service-time: 11
- Effectuez un appel d'API à l'aide de la clé :
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers \ -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"
L'appel doit réussir avec un code d'état 200 et renvoyer une liste d'en-têtes dans la réponse. Exemple :
curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS" HTTP/1.1 200 OK server: envoy date: Tue, 12 May 2020 17:55:34 GMT content-type: application/json content-length: 828 access-control-allow-origin: * access-control-allow-credentials: true x-envoy-upstream-service-time: 301 { "headers": { "Accept": "*/*", "Content-Length": "0", "Host": "httpbin.default.svc.cluster.local", "User-Agent": "curl/7.70.0-DEV", "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS", "X-Apigee-Accesstoken": "", "X-Apigee-Api": "httpbin.default.svc.cluster.local", "X-Apigee-Apiproducts": "httpbin", "X-Apigee-Application": "httpbin", "X-Apigee-Authorized": "true", "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS", "X-Apigee-Developeremail": "user@example.com", "X-Apigee-Environment": "test", "X-Apigee-Organization": "my-org", "X-Apigee-Scope": "", "X-B3-Parentspanid": "1476f9a2329bbdfa", "X-B3-Sampled": "0", "X-B3-Spanid": "1ad5c19bfb4bc96f", "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa" } }
Étapes suivantes
Le trafic d'API vers le service httpbin
est désormais géré par Apigee. Voici quelques fonctionnalités que vous pouvez explorer et essayer :
- Si vous avez configuré votre produit d'API comme expliqué dans la section Comment obtenir une clé API, la limite de quota a été définie sur 5 requêtes par minute. Essayez d'appeler le service
httpbin
plusieurs fois pour déclencher le quota. Lorsque le quota est épuisé, une erreur HTTP 403 est renvoyée. - Accédez à Apigee Analytics dans l'interface utilisateur Edge. Accédez à Analyser> Métriques API > Performances des proxys d'API.
- Générez et utilisez des jetons JWT pour authentifier les appels d'API.
- Utilisez l'interface de ligne de commande pour gérer, créer des jetons et contrôler les liaisons. Pour plus d'informations sur la CLI, consultez la documentation de référence.