Gerçek dünya çağrı zincirini simüle ederek yerel geliştirme ortamınız ile Serverless App Engine (SAE) test ortamı arasındaki trafiği otomatik olarak yalıtır. Bu sayede ortak geliştirme ve hata ayıklama süreçleri hızlanır.
Önkoşullar
Cloud Toolkit, IntelliJ IDEA'da yüklü ve yapılandırılmış olmalıdır.
-
Yerel ve cloud uygulamaları arasında kanal kurmak için uygulamanızın bulunduğu sanal özel cloud (VPC) içinde Secure Shell (SSH) üzerinden erişilebilen bir Elastic Compute Service (ECS) örneği oluşturun. Daha fazla bilgi için bkz. Konsolda ECS örneği oluşturma ve yönetme (hızlı sürüm).
ÖnemliECS örneği ve uygulama aynı VPC içinde bulunmalıdır.
SSH kanalı parola ile oturum açmayı gerektirir. Anahtar çifti ile oturum açma desteklenmez.
İşletim sisteminizde proxy yapılandırıldıysa sistem yerel ve cloud uygulamaları arasında kanal kuramayabilir. Proxy'yi devre dışı bırakıp tekrar deneyin.
Arka plan bilgileri
Aşağıdaki örnek bir Spring Cloud mikroservis uygulamasını kullanır. Herhangi bir iş kodunu değiştirmeden bir trafik etiketi ayarlarsınız. Uç-cloud bağlantısı özelliği, bu etikete dayanarak trafiği SAE test ortamına veya yerel geliştirme ortamınıza yönlendirerek trafiği otomatik olarak yalıtır.
1. Adım: Uygulamayı SAE'ye dağıtın
Demo uygulamasını dağıtın ve hizmetlere spring-cloud-zuul, spring-cloud-a, spring-cloud-b ve spring-cloud-c adlarını verin. Ayrıntılı talimatlar için bkz. Bir uygulamanın hizmet kayıt defterini Nacos olarak değiştirme.
Uygulamayı bir görüntü veya JAR paketi kullanarak dağıtmanızı ve satın aldığınız hizmet kayıt defterini kullanmak için -Dnacos.use.endpoint.parsing.rule=false ile -Dnacos.use.cloud.namespace.parsing=false başlatma parametrelerini yapılandırmanızı öneririz.
2. Adım: Uç-cloud bağlantısını yapılandırın
IntelliJ IDEA'yı başlatın.
Üst menü çubuğunda seçeneğini tıklayın.
Settings iletişim kutusunda seçeneğini belirleyin.
-
Microservice sayfasında uç-cloud bağlantısı için parametreleri yapılandırın.
Proxy: Bir ECS örneğini proxy olarak kullanmak için SAE uygulamanızla aynı VPC içinde genel IP adresine sahip bir örnek satın alın. Ardından bunu Proxy sayfasına ekleyin.
Microservice: Microservice sayfasında proxy'yi ve MSE hizmet kayıt defterinizi yapılandırın.
-
MSE: MSE sayfasında parametreleri yapılandırın.
-
License Key ve App Name değerlerini girin.
License Key ve App Name değerlerini almak için SAE Webshell'e giriş yapın ve aşağıdaki komutu çalıştırın. Webshell'e erişmek için bkz. Webshell'i görüntüleme.
env | grep javaÖrnek çıktı:
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**** Etiketi ayarlayın. Tag alanına local yazın.
Aracıyı yerel makinenize indirin.
-
Apply düğmesini tıklayın ve ardından OK düğmesini tıklayın.
-
Bağlantıyı doğrulamak için yerel uygulamanızı başlatın.
Info iletişim kutusu uç-cloud bağlantısının başarıyla etkinleştirildiğini gösteriyorsa özellik aktiftir.
3. Adım: Trafik yönlendirmeyi test edin
Cloud-native ağ geçidine yapılan HTTP istekleri için istek üstbilgisine x-mse-tag=[local] ekleyin. Trafik daha sonra belirtilen ortam içinde otomatik olarak kapalı bir döngü oluşturur.
x-mse-tag anahtarı sabittir ve değeri ortam etiketiyle eşleşmelidir.
Ortam etiketini yapılandırdıktan sonra bir istek göndermek için curl kullanın:
-
Ana yol:
curl http://47.106.XX.XX:8080/A/a -
Sonuç:
A[10.0.1.160] -> B[10.0.1.161] -> C[10.0.1.162] -
Dal yolu:
curl http://47.106.XX.XX:8080/A/a \--header 'x-mse-tag: local' -
Sonuç:
A[127.0.0.1] -> B[127.0.0.1] -> C[10.0.1.162]