Application Configuration Management (ACM) akan segera dihentikan, dan seluruh datanya akan dihapus. Segera migrasikan konfigurasi Anda ke Microservices Engine (MSE) Nacos untuk memanfaatkan peningkatan performa, stabilitas, serta fitur yang lebih lengkap. Anda dapat mengekspor konfigurasi dari konsol ACM dan mengimpornya ke konsol MSE.
Setelah ACM mencapai akhir masa dukungan, Anda tidak dapat lagi membuat atau mengedit konfigurasi di konsol ACM. Pemanggilan API tidak akan dilindungi oleh Service Level Agreement (SLA). Kami sangat menyarankan agar Anda segera menyelesaikan migrasi ini.
Langkah 1: Ekspor konfigurasi ke MSE Nacos
-
Masuk ke halaman pembelian MSE menggunakan Akun Alibaba Cloud Anda dan beli instans MSE Nacos Edisi Profesional. Edisi Profesional mendukung otentikasi konfigurasi, enkripsi, serta menawarkan ketersediaan tinggi yang lebih baik. Untuk panduan memilih jumlah vCPU, ukuran memori, dan jumlah node, lihat Perkirakan kemampuan instans Microservices Registry. Untuk memperkirakan bandwidth publik yang dibutuhkan, gunakan rumus berikut: Frekuensi perubahan (permintaan/detik) × Jumlah konfigurasi × Ukuran konfigurasi (KB).
-
Ekspor konfigurasi yang ingin Anda migrasikan dari konsol ACM.
-
Masuk ke konsol ACM.
-
Pada halaman Configurations, pilih konfigurasi target, klik Export di bawah daftar, lalu klik Export pada kotak dialog Export Configurations (public).
-
Simpan file konfigurasi yang telah diekspor.
-
-
Impor konfigurasi ke konsol MSE.
-
Masuk ke konsol MSE.
-
Pada panel navigasi kiri, pilih Microservices Registry > Instances.
-
Pada halaman Instances, klik Instance ID dari instans Nacos yang telah Anda beli.
-
Pada panel navigasi kiri, pilih Configuration Management > Configurations.
-
Pada halaman Configurations, klik Import Configuration.
-
Pada kotak dialog Import Configuration, pilih kebijakan untuk menangani Same Configurations, klik Upload File untuk mengunggah file konfigurasi yang diekspor dari konsol ACM, lalu klik OK.
-
Langkah 2: Ganti parameter bisnis aplikasi
Ikuti langkah-langkah yang sesuai dengan jenis aplikasi Anda untuk mengganti parameter bisnis.
Migrasi aplikasi Spring Cloud Alibaba
Jika aplikasi Anda adalah aplikasi Spring Cloud Alibaba, ubah file konfigurasi bootstrap.properties.
Ganti konten berikut:
spring.cloud.nacos.config.endpoint=${ACM_PUBLIC/INTERNAL_ENDPOINT}
dengan:
spring.cloud.nacos.config.server-addr=${MSE_NACOS_PUBLIC/INTERNAL_ENDPOINT}
Juga, perbarui namespace ke namespace MSE Nacos Anda:
spring.cloud.nacos.config.namespace=${MSE_NACOS_NAMESPACE_ID}
Untuk demo yang dapat dijalankan, lihat acm2nacos-spring-cloud-example.
Untuk memverifikasi apakah aplikasi Anda adalah aplikasi Spring Cloud Alibaba:
Periksa file pom.xml untuk dependensi berikut:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
-
Metode migrasi ini hanya didukung oleh MSE Nacos versi 2.0.3 ke atas. Jika versi MSE Nacos Anda lebih rendah dari 2.0.3, lakukan peningkatan instans di konsol MSE. Proses peningkatan membutuhkan waktu sekitar 5 hingga 6 menit. Upgrade the Nacos engine version
-
Untuk memastikan ketersediaan tinggi kluster Anda, konfigurasikan minimal tiga node.
-
Anda dapat menemukan titik akhir publik dan internal instans MSE Nacos Anda pada halaman Basic Information-nya.
-
Namespace default di MSE Nacos tidak memiliki ID, sehingga Anda dapat mengosongkan parameter tersebut. Jika Anda menggunakan namespace non-default, Anda dapat menemukan ID-nya pada halaman Namespaces instans Anda.
Jika Anda menggunakan titik akhir publik untuk penerapan, Anda harus menambahkan alamat IP klien ke daftar putih untuk memastikan konektivitas. Set a whitelist
Daftar putih kosong memungkinkan akses dari alamat IP mana pun.
Migrasi aplikasi Java
-
Jika Anda menggunakan ACM-Java-SDK, file
pom.xmlAnda berisi dependensi berikut:<dependency> <groupId>com.alibaba.edas.acm</groupId> <artifactId>acm-sdk</artifactId> </dependency>Untuk migrasi, tambahkan argumen JVM berikut dan redeploy aplikasi.
-DDIAMOND.SERVER.IPS=${MSE_NACOS_PUBLIC/INTERNAL_ENDPOINT}Juga, ubah pengaturan namespace dalam kode Anda.
properties.put("namespace", "${namespaceId}"); -
Jika Anda menggunakan klien ACM dan ingin beralih ke klien Nacos, ikuti petunjuk untuk pengguna Nacos-Java-SDK.
-
Jika Anda menggunakan Nacos-Java-SDK, file
pom.xmlAnda berisi dependensi berikut:
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</dependency>
Ganti placeholder ${...} dengan titik akhir publik/internal MSE dan ${namespaceId} dengan ID namespace MSE, lalu redeploy aplikasi. Jika Anda menggunakan namespace default, biarkan parameter namespace kosong.
properties.put("serverAddr", ${MSE_NACOS_PUBLIC/INTERNAL_ENDPOINT});
properties.put("namespace", "${namespaceId}");
Tambahkan argumen berikut saat startup untuk menyelesaikan migrasi.
-Dnacos.cache.data.init.snapshot=false
Untuk demo Java resmi, lihat acm2nacos-java-example. Untuk demo aplikasi Java resmi, lihat Java SDK.
Migrasi aplikasi nacos-spring-boot
Jika aplikasi Anda adalah aplikasi nacos-spring-boot, ubah file konfigurasi application.properties.
Ganti konten berikut:
nacos.config.endpoint=${ACM_PUBLIC/INTERNAL_ENDPOINT}
dengan:
nacos.config.server-addr=${MSE_NACOS_PUBLIC/INTERNAL_ENDPOINT}
Juga, perbarui namespace ke namespace MSE Nacos Anda:
nacos.config.namespace=${MSE_NACOS_NAMESPACE_ID}
Migrasi aplikasi Golang
Sebelum memanggil API, konfigurasikan variabel lingkungan untuk kredensial akses Anda. Gunakan MSE_AK sebagai ID AccessKey dan MSE_SK sebagai AccessKey Secret.
-
Jika Anda menggunakan ACM-golang-SDK, ganti
${endpoint}dengan titik akhir publik/internal instans MSE Nacos Anda.clientConfig := constant.ClientConfig{ Endpoint: ${endpoint} + ":8080", NamespaceId: namespaceId, AccessKey: MSE_AK, SecretKey: MSE_SK, TimeoutMs: 5 * 1000, ListenInterval: 30 * 1000, } -
Jika Anda menggunakan Nacos-golang-SDK, ganti
${serverAddr}dengan titik akhir publik/internal instans MSE Nacos Anda.sc := []constant.ServerConfig{ { IpAddr: "${serverAddr}", Port: 8848, }, }
Untuk demo aplikasi Golang resmi, lihat nacos-sdk-go.
Migrasi aplikasi Python
-
Jika Anda menggunakan ACM-Python-SDK, ganti
${endpoint}dengan titik akhir publik/internal instans MSE Nacos Anda dan${namespace_id}dengan ID namespace-nya.ENDPOINT = "${endpoint}" NAMESPACE = "${namespace_id}" c = acm.ACMClient(ENDPOINT, NAMESPACE, AK, SK) -
Jika Anda menggunakan Nacos-Python-SDK, ganti
${server_address}dengan titik akhir publik/internal instans MSE Nacos Anda dan${namespace_id}dengan ID namespace-nya.SERVER_ADDRESSES = "${server_address}" NAMESPACE = "${namespace_id}" client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE)
Migrasi aplikasi Node.js
-
Jika Anda menggunakan ACM-Nodejs-SDK, ganti
${endpoint}dengan titik akhir publik/internal instans MSE Nacos Anda dan${namespace_id}dengan ID namespace-nya.// for find address mode const configClient = new NacosConfigClient({ endpoint: '${endpoint}', namespace: '${namespace_id}', accessKey: 'MSE_AK', secretKey: 'MSE_SK', requestTimeout: 6000, }); -
Jika Anda menggunakan Nacos-Nodejs-SDK, ganti
${server_address}dengan titik akhir publik/internal instans MSE Nacos Anda dan${namespace_id}dengan ID namespace-nya.const configClient = new NacosConfigClient({ serverAddr: '${server_address}', namespace: '${namespace_id}', accessKey: 'MSE_AK', secretKey: 'MSE_SK', requestTimeout: 6000, });
Migrasi aplikasi C#
Ganti ${server_address} dengan titik akhir publik/internal instans MSE Nacos Anda dan ${namespace_id} dengan ID namespace-nya.
{
"NacosConfig": {
"Listeners": [
{
"Optional": false,
"DataId": "common",
"Group": "DEFAULT_GROUP"
},
{
"Optional": false,
"DataId": "demo",
"Group": "DEFAULT_GROUP"
}
],
"Namespace": "namespace_id", // Harap atur nilai ID Namespace.
"ServerAddresses": [ "http://${server_address}:8848/" ],
"UserName": "test2",
"Password": "123456",
"AccessKey": "MSE_AK",
"SecretKey": "MSE_SK",
"EndPoint": "acm.aliyun.com",
"ConfigFilterAssemblies": ["YouPrefix.AssemblyName"],
"ConfigFilterExtInfo": "some ext information"
}
}
Migrasi aplikasi C++
-
Jika Anda menggunakan ACM-CPP-SDK, ganti
${endpoint}dengan titik akhir publik/internal instans MSE Nacos Anda dan${namespace_id}dengan ID namespace-nya.// Initializes the configuration service using the following parameters. ACM::init("${endpoint}","$namespace_id","$accessKey","$secretKey"); -
Jika Anda menggunakan Nacos-CPP-SDK, ganti
${server_address}dengan titik akhir publik/internal instans MSE Nacos Anda.Properties props; props[PropertyKeyConst::SERVER_ADDR] = "${server_address}:8848";//Server address
(Opsional) Langkah 3: Otorisasi ulang Pengguna RAM
Jika Anda menggunakan otentikasi konfigurasi dan telah memberikan izin kepada Pengguna RAM, perbarui skrip otorisasi dan berikan kembali izin setelah migrasi ke MSE. Authorize access to Microservices Registry
-
Masuk ke Konsol Resource Access Management (RAM).
-
Pada panel navigasi kiri, pilih Permissions > Policies.
-
Di pojok kiri atas halaman Policies, klik Create Policy.
-
Pada halaman Create Policy, klik tab JSON.
-
Tempel skrip lokal Anda ke editor kebijakan, menggantikan konten yang ada.
Berikut adalah contoh skrip:
{ "Version": "1", "Statement": [ { "Action": [ "acms:R" ], "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP/com.alibaba.acm.test", "Effect": "Allow" } ] }
-
Ganti izin baca
Jika skrip berisi konten berikut:
"Action": [ "acms:R" ]Ganti dengan:
"Action": [ "mse:List*", "mse:Query*", "mse:Get*" ] -
Ganti izin tulis
Jika skrip berisi konten berikut:
"Action": [ "acms:W" ]Ganti dengan:
"Action": [ "mse:Create*", "mse:Update*", "mse:Delete*" ] -
Ganti resource
Ganti definisi resource berikut:
"Resource": "*:*:*:*:cfg/{acm_namespace_id}/{group_id}/{data_id}"dengan:
"Resource": "acs:mse:*:*:instance/{instance_id}/{mse_namespace_id}/{group_id}/{data_id}"CatatanDeskripsi parameter:
-
{acm_namespace_id}: ID namespace di ACM. -
{instance_id}: ID instans MSE Anda. -
{mse_namespace_id}: ID namespace di MSE. -
{group_id}: ID grup. -
{data_id}: ID data.
-
Jika Anda tidak perlu memberikan izin pada level group_id atau data_id, hapus bagian tersebut dari path resource.
-
Untuk memberikan izin pada level
namespace, gunakan path resource berikut:"Resource": "acs:mse:*:*:instance/{instance_id}/{mse_namespace_id}" -
Untuk memberikan izin pada level
group_id, gunakan path resource berikut:"Resource": "acs:mse:*:*:instance/{instance_id}/{mse_namespace_id}/{group_id}"
Setelah mengganti skrip, berikan izin yang didefinisikan dalam kebijakan baru tersebut kepada Pengguna RAM. Authorize access to Microservices Registry
Izin baru untuk Pengguna RAM akan berlaku dalam waktu sekitar 5 hingga 10 detik.
Langkah 4: Redeploy dan jalankan aplikasi
Redeploy aplikasi Anda. Migrasi selesai ketika penerapan berhasil.