All Products
Search
Document Center

Serverless App Engine:Gunakan Alibaba Cloud Toolkit untuk menerapkan aplikasi mikro layanan secara otomatis ke SAE

Last Updated:Jul 23, 2025

Tema ini menjelaskan cara menggunakan Alibaba Cloud Toolkit untuk menerapkan aplikasi ke Serverless App Engine (SAE) dan memantau aplikasi tersebut.

Prasyarat

  • SAE telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktivasi SAE.

  • Maven telah diunduh dan variabel lingkungan telah dikonfigurasi.

  • Java Development Kit (JDK) 1.8 atau yang lebih baru telah diunduh dan diinstal.

  • IntelliJ IDEA 2018.3 atau yang lebih baru telah diunduh dan diinstal.

    Catatan

    Server resmi dari plugin JetBrains ditempatkan di luar Tiongkok. Jika Anda tidak dapat mengunduh IntelliJ IDEA karena respons jaringan yang lambat, peroleh paket instalasi offline untuk IntelliJ IDEA dan instal. Untuk informasi lebih lanjut, lihat Hubungi kami.

  • Alibaba Cloud Toolkit telah diinstal dan dikonfigurasi di IntelliJ IDEA.

Langkah 1: Buat aplikasi demo di SAE

SAE memungkinkan Anda menerapkan aplikasi dengan menggunakan paket kode dan gambar. Untuk informasi lebih lanjut, lihat Terapkan Aplikasi Java ke SAE 1.0.

Dalam contoh ini, paket JAR digunakan untuk membuat aplikasi penyedia dan aplikasi konsumen di SAE. Untuk informasi lebih lanjut, lihat Terapkan Aplikasi Mikro Layanan Menggunakan Paket JAR di Konsol SAE.

Langkah 2: Buat penyedia

Buat proyek aplikasi penyedia di lingkungan lokal, tambahkan dependensi, aktifkan pendaftaran dan penemuan layanan, lalu tentukan server Nacos sebagai registri layanan.

  1. Buat proyek Maven bernama nacos-service-provider.

  2. Tambahkan dependensi ke file pom.xml.

    Kode sampel berikut memberikan contoh tentang cara menambahkan dependensi Spring Boot 2.1.4.RELEASE dan Spring Cloud Greenwich.SR1:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>                  

    Dalam contoh ini, Spring Cloud Greenwich digunakan. Versi Spring Cloud Alibaba untuk Spring Cloud Greenwich adalah 2.1.1.RELEASE.

    • Versi Spring Cloud Alibaba untuk Spring Cloud Finchley adalah 2.0.1.RELEASE.

    • Versi Spring Cloud Alibaba untuk Spring Cloud Edgware adalah 1.5.1.RELEASE.

    Catatan

    Spring Cloud Edgware sudah tidak digunakan lagi. Kami sarankan Anda tidak menggunakan Spring Cloud Edgware untuk mengembangkan aplikasi.

  3. Di src\main\java, buat package bernama com.aliware.edas.

  4. Di dalam paket com.aliware.edas, buat kelas startup bernama ProviderApplication untuk penyedia, dan tambahkan kode sampel berikut:

    Anotasi @EnableDiscoveryClient digunakan untuk mengaktifkan fitur pendaftaran dan penemuan layanan untuk aplikasi penyedia.

    package com.aliware.edas;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    @SpringBootApplication
        @EnableDiscoveryClient
        public class ProviderApplication {
    
            public static void main(String[] args) {
                SpringApplication.run(ProviderApplication.class, args);
            }
        }             
  5. Di dalam paket com.aliware.edas, buat EchoController, dan tentukan /echo/{String} sebagai pemetaan URL dan GET sebagai metode HTTP. Dapatkan parameter metode dari jalur URL, dan gema parameter yang diterima.

    package com.aliware.edas;
    
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class EchoController {
       @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
        public String echo(@PathVariable String string) {
           return string;
          }
    }              
  6. Di src\main\resources, buat file bernama application.properties dan tambahkan konfigurasi berikut ke application.properties untuk menentukan alamat IP server Nacos.

    spring.application.name=service-provider
    server.port=18081
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848               

    Dalam konfigurasi sebelumnya, 127.0.0.1 menunjukkan alamat IP server Nacos Anda. Jika server Nacos Anda ditempatkan di server lain, Anda harus mengubah nilainya menjadi alamat IP server tersebut.

    Catatan

    Jika registri layanan Anda adalah registri layanan mandiri, ganti 127.0.0.1 dengan alamat registri layanan mandiri.

  7. Verifikasi hasilnya.

    1. Jalankan fungsi main dari ProviderApplication di proyek nacos-service-provider untuk memulai aplikasi penyedia.

    2. Masuk ke konsol Nacos Server lokal di http://127.0.0.1:8848/nacos. Nama pengguna dan kata sandi default yang dapat digunakan untuk masuk ke konsol Nacos Server adalah nacos.

    3. Di panel navigasi sisi kiri, pilih Service Management > Services.

      Anda dapat melihat service-provider dalam daftar layanan. Anda juga dapat memeriksa detail layanan tersebut.

Langkah 3: Buat konsumen

Bagian ini menjelaskan fitur pendaftaran layanan, dan bagaimana Nacos Server bekerja dengan RestTemplate dan FeignClient.

  1. Buat proyek Maven bernama nacos-service-consumer.

  2. Tambahkan dependensi ke file pom.xml.

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>        
  3. Di src\main\java, buat package bernama com.aliware.edas.

  4. Di dalam paket com.aliware.edas, konfigurasikan RestTemplate dan FeignClient.

    1. Di dalam paket com.aliware.edas, buat kelas antarmuka bernama EchoService, tambahkan anotasi @FeignClient, lalu tentukan URL HTTP dan metode HTTP.

      package com.aliware.edas;
      
      import org.springframework.cloud.openfeign.FeignClient;
      import org.springframework.web.bind.annotation.PathVariable;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RequestMethod;
      
      @FeignClient(name = "service-provider")
      public interface EchoService {
          @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
          String echo(@PathVariable("str") String str);
      }                   
    2. Di dalam paket com.aliware.edas, buat kelas startup bernama ConsumerApplication dan tambahkan konfigurasi terkait.

      • Tambahkan anotasi @EnableDiscoveryClient untuk mengaktifkan pendaftaran dan penemuan layanan.

      • Tambahkan anotasi @EnableFeignClients untuk mengaktifkan FeignClient.

      • Tambahkan anotasi @LoadBalanced untuk mengintegrasikan RestTemplate dengan penemuan layanan.

      package com.aliware.edas;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
      import org.springframework.cloud.client.loadbalancer.LoadBalanced;
      import org.springframework.cloud.openfeign.EnableFeignClients;
      import org.springframework.context.annotation.Bean;
      import org.springframework.web.client.RestTemplate;
      
      @SpringBootApplication
      @EnableDiscoveryClient
      @EnableFeignClients
      public class ConsumerApplication {
      
          @LoadBalanced
          @Bean
          public RestTemplate restTemplate() {
              return new RestTemplate();
          }
      
          public static void main(String[] args) {
              SpringApplication.run(ConsumerApplication.class, args);
          }
      }
  5. Di dalam paket com.aliware.edas, buat kelas bernama TestController untuk menguji dan memvalidasi fitur penemuan layanan.

    package com.aliware.edas;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    @RestController
    public class TestController {
    
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private EchoService echoService;
    
    @RequestMapping(value = "/echo-rest/{str}", method = RequestMethod.GET)
    public String rest(@PathVariable String str) {
          return restTemplate.getForObject("http://service-provider/echo/" + str,
                        String.class);
            }
    
          @RequestMapping(value = "/echo-feign/{str}", method = RequestMethod.GET)
          public String feign(@PathVariable String str) {
                return echoService.echo(str);
            }
    
        }           
  6. Di src\main\resources, buat file bernama application.properties dan tambahkan konfigurasi berikut ke application.properties untuk menentukan alamat IP server Nacos.

    spring.application.name=service-consumer
    server.port=18082
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

    Dalam konfigurasi sebelumnya, 127.0.0.1 menunjukkan alamat IP server Nacos Anda. Jika server Nacos Anda ditempatkan di server lain, Anda harus mengubah nilainya menjadi alamat IP server tersebut.

    Catatan

    Jika registri layanan Anda adalah registri layanan mandiri, ganti 127.0.0.1:8848 dengan alamat registri layanan mandiri.

  7. Verifikasi hasilnya.

    1. Jalankan fungsi main dari ConsumerApplication di proyek nacos-service-consumer untuk memulai aplikasi konsumen.

    2. Masuk ke konsol Nacos Server lokal di http://127.0.0.1:8848/nacos. Nama pengguna dan kata sandi default yang dapat digunakan untuk masuk ke konsol Nacos Server adalah nacos.

    3. Di panel navigasi sisi kiri, pilih Service Management > Services.

      Anda dapat melihat service-consumer dalam daftar layanan. Anda juga dapat memeriksa detail layanan tersebut.

Langkah 4: Uji layanan di lingkungan lokal

Gunakan konsumen untuk memanggil penyedia di lingkungan lokal.

  • Untuk Linux, UNIX, atau macOS, jalankan perintah berikut:

    curl http://127.0.0.1:18082/echo-rest/rest-rest
    curl http://127.0.0.1:18082/echo-feign/feign-rest
  • Di Windows, masukkan http://127.0.0.1:18082/echo-rest/rest-rest lalu http://127.0.0.1:18082/echo-feign/feign-rest di bilah alamat browser dan tekan tombol Enter.

Dalam contoh ini, layanan diuji di Windows.

Successful call

Gambar di atas menunjukkan bahwa penyedia mikro layanan dipanggil oleh konsumen mikro layanan di lingkungan lokal.

Langkah 5: Terapkan aplikasi ke SAE

Setelah Anda mengembangkan aplikasi, Anda harus mengonfigurasi tugas penerapan di Alibaba Cloud Toolkit untuk menerbitkan kode bisnis Anda ke aplikasi yang Anda buat di Langkah 1: Buat Aplikasi Demo di SAE.

  1. Konfigurasikan akun di Alibaba Cloud Toolkit.

    1. Klik ikon Alibaba Cloud Toolkit Alibaba Cloud Toolkit图标 dan pilih Preference… dari daftar drop-down. Di panel navigasi sisi kiri halaman Pengaturan, pilih Alibaba Cloud Toolkit > Accounts

    2. Di halaman Accounts, konfigurasikan parameter Access Key ID dan Access Key Secret, lalu klik OK.

      Catatan

      Untuk mendapatkan Access Key ID dan Access Key Secret, lakukan langkah-langkah berikut:

      Di halaman Accounts, klik Get existing AK/SK untuk pergi ke halaman logon Alibaba Cloud lalu masuk ke Alibaba Cloud. Di halaman Manajemen Keamanan, dapatkan Access Key ID dan Access Key Secret.

  2. Konfigurasikan tugas penerapan.

    1. Di IntelliJ IDEA, klik ikon Cloud Toolkit Alibaba Cloud Toolkit图标 dan pilih Deploy to SAE dari daftar drop-down.

    2. Di halaman Deploy to SAE, konfigurasikan parameter. Setelah Anda mengonfigurasi pengaturan, klik Apply untuk menyimpan pengaturan.

      Catatan

      Jika Anda menggunakan registri layanan mandiri, Anda harus mengonfigurasi perintah startup berikut di tab Advanced: -Dnacos.use.endpoint.parsing.rule=false dan -Dnacos.use.cloud.namespace.parsing=false.

      • Konfigurasikan pengaturan untuk aplikasi penyedia.

        Di bagian Aplikasi, tentukan wilayah, namespace, dan nama aplikasi yang Anda buat di Langkah 1: Buat Aplikasi Demo di SAE.

        Configure a provider in Alibaba Cloud Toolkit

      • Konfigurasikan pengaturan untuk aplikasi konsumen.

        Di bagian Aplikasi, tentukan wilayah, namespace, dan nama aplikasi yang Anda buat di SAE.

        Configure the settings for the consumer application.

  3. Terapkan aplikasi.

    Klik Run untuk menjalankan aplikasi penyedia, lalu jalankan aplikasi konsumen. Runtime

  4. Verifikasi hasilnya.

    1. Tautkan instance Server Load Balancer (SLB) ke aplikasi konsumen.

      Untuk informasi lebih lanjut, lihat Tautkan Instance SLB ke Aplikasi. Bind an SLB instance to the consumer

    2. Akses konsumen.

      1. Ajukan permintaan HTTP ke konsumen.

        curl http://47.111.XX.XX/echo-feign/feign-rest

      2. Ajukan permintaan HTTP ke konsumen. Konsumen memanggil penyedia.

        curl http://47.111.XX.XX/echo-rest/rest-rest

      Request call

    3. Lihat data panggilan di dasbor Pemantauan Aplikasi terkait.