Isolez automatiquement le trafic entre votre environnement de développement local et l'environnement de test Serverless App Engine (SAE) en simulant une chaîne d'appels réelle. Cette approche accélère le développement collaboratif et le débogage.
Prérequis
Cloud Toolkit est installé et configuré dans IntelliJ IDEA.
-
Une instance Elastic Compute Service (ECS) accessible via Secure Shell (SSH) a été créée dans le Virtual Private Cloud (VPC) où réside votre application, afin d'établir des canaux de communication entre les applications locales et cloud. Pour plus d'informations, consultez la rubrique Créer et gérer une instance ECS dans la console (version express).
ImportantL'instance ECS et l'application doivent résider dans le même VPC.
Le canal SSH nécessite une authentification par mot de passe. L'authentification par paire de clés n'est pas prise en charge.
Si un proxy est configuré sur votre système d'exploitation, l'établissement du canal entre les applications locales et cloud peut échouer. Désactivez le proxy, puis réessayez.
Contexte
L'exemple suivant utilise une application microservices Spring Cloud. Sans modifier le code métier, vous définissez un tag de trafic. La fonctionnalité d'interconnexion local-cloud achemine le trafic vers l'environnement de test SAE ou vers votre environnement de développement local en fonction de ce tag, isolant ainsi automatiquement le trafic.
Étape 1 : Déployer l'application sur SAE
Déployez l'application Demo et nommez les services spring-cloud-zuul, spring-cloud-a, spring-cloud-b et spring-cloud-c. Pour obtenir des instructions détaillées, consultez la rubrique Modifier le registre de services d'une application pour utiliser Nacos.
Nous vous recommandons de déployer l'application à l'aide d'une image ou d'un package JAR, et de configurer les paramètres de démarrage -Dnacos.use.endpoint.parsing.rule=false et -Dnacos.use.cloud.namespace.parsing=false afin d'utiliser votre registre de services acheté.
Étape 2 : Configurer l'interconnexion local-cloud
Démarrez IntelliJ IDEA.
Dans la barre de menus supérieure, choisissez .
Dans la boîte de dialogue Settings, choisissez .
-
Sur la page Microservice, configurez les paramètres de l'interconnexion local-cloud.
Proxy : Pour utiliser une instance ECS comme proxy, achetez-en une disposant d'une adresse IP publique dans le même VPC que votre application SAE. Ajoutez-la ensuite sur la page Proxy.
Microservice : Sur la page Microservice, configurez le proxy et votre registre de services MSE.
-
MSE : Sur la page MSE, configurez les paramètres.
-
Saisissez les valeurs License Key et App Name.
Connectez-vous au Webshell SAE et exécutez la commande suivante pour obtenir les valeurs License Key et App Name. Pour accéder au Webshell, consultez la rubrique Afficher le Webshell.
env | grep javaExemple de sortie :
JAVA_TOOL_OPTIONS=-javaagent:/home/admin/.opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=iioe7jcnuk@a0bcdaec24f**** -Darms.appId=8641dbc9-8663-4c47-95f7-683fa6dd**** -Darms.agent.env=Serverless -Darms.agent.args= -Dprofiler.micro.service.canary.enable=true -Dprofiler.micro.service.metadata.report.enable=true -Dprofiler.micro.service.http.server.enable=true -Dmsc.appName=cn-shenzhen-test-sc-gateway-****** -Dmsc.licenseKey=iioe7jcnuk@460d62050fa**** Définissez le tag. Dans le champ Tag, saisissez
local.Téléchargez l'agent sur votre machine locale.
-
Cliquez sur Apply, puis sur OK.
-
Démarrez votre application locale pour vérifier la connexion.
Si la boîte de dialogue Info indique que l'interconnexion local-cloud a été activée avec succès, la fonctionnalité est active.
Étape 3 : Tester le routage du trafic
Pour les requêtes HTTP adressées à la passerelle cloud-native, ajoutez x-mse-tag=[local] à l'en-tête de la requête. Le trafic forme alors automatiquement une boucle fermée au sein de l'environnement spécifié.
La clé x-mse-tag est fixe et sa valeur doit correspondre au tag de l'environnement.
Après avoir configuré le tag d'environnement, utilisez curl pour envoyer une requête :
-
Chemin principal :
curl http://47.106.XX.XX:8080/A/a -
Résultat :
A[10.0.1.160] -> B[10.0.1.161] -> C[10.0.1.162] -
Chemin secondaire :
curl http://47.106.XX.XX:8080/A/a \--header 'x-mse-tag: local' -
Résultat :
A[127.0.0.1] -> B[127.0.0.1] -> C[10.0.1.162]