Bagikan melalui


Menyambungkan ke kluster dengan akses privat di Azure Cosmos DB for PostgreSQL

Penting

Azure Cosmos DB for PostgreSQL tidak lagi didukung untuk proyek baru. Jangan gunakan layanan ini untuk proyek baru. Sebagai gantinya, gunakan salah satu dari dua layanan ini:

Tutorial ini membuat mesin virtual (VM) dan kluster PostgreSQL untuk Azure Cosmos DB, dan membangun akses privat di antara mereka.

Prasyarat

Membuat jaringan virtual

Pertama, siapkan grup sumber daya dan jaringan virtual untuk menahan kluster dan VM Anda.

az group create \
	--name link-demo \
	--location eastus

az network vnet create \
	--resource-group link-demo \
	--name link-demo-net \
	--address-prefix 10.0.0.0/16

az network nsg create \
	--resource-group link-demo \
	--name link-demo-nsg

az network vnet subnet create \
	--resource-group link-demo \
	--vnet-name link-demo-net \
	--name link-demo-subnet \
	--address-prefixes 10.0.1.0/24 \
	--network-security-group link-demo-nsg

Membuat mesin virtual

Untuk demonstrasi, buat VM yang menjalankan Debian Linux dan psql klien PostgreSQL.

# provision the VM

az vm create \
	--resource-group link-demo \
	--name link-demo-vm \
	--vnet-name link-demo-net \
	--subnet link-demo-subnet \
	--nsg link-demo-nsg \
	--public-ip-address link-demo-net-ip \
	--image Debian11 \
	--admin-username azureuser \
	--generate-ssh-keys

# install psql database client

az vm run-command invoke \
	--resource-group link-demo \
	--name link-demo-vm \
	--command-id RunShellScript \
	--scripts \
		"sudo touch /home/azureuser/.hushlogin" \
		"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
		"sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y postgresql-client"

Buat kluster Azure Cosmos DB for PostgreSQL Anda di portal Azure.

  1. Di portal, pilih Buat sumber daya di sudut kiri atas.

  2. Pada halaman Buat sumber daya , pilih Database, lalu pilih Azure Cosmos DB.

  3. Pada halaman Pilih opsi API, pada petak PostgreSQL, pilih Buat.

  4. Pada halaman Buat kluster Azure Cosmos DB untuk PostgreSQL, isi informasi berikut ini:

    • Grup sumber daya: Pilih Baru, lalu masukkan link-demo.

    • Nama kluster: Masukkan link-demo-sg.

      Catatan

      Nama kluster harus unik secara global di seluruh Azure karena membuat entri DNS. Jika link-demo-sg tidak tersedia, masukkan nama lain dan sesuaikan langkah-langkah berikut yang sesuai.

    • Lokasi: Pilih US Timur.

    • Kata sandi: Masukkan lalu konfirmasi kata sandi.

  5. Pilih Next: Networking.

  6. Pada tab Jaringan , untuk Metode konektivitas, pilih Akses privat.

  7. Pada layar Buat titik akhir privat, masukkan atau pilih nilai berikut ini:

    • Grup sumber daya: link-demo
    • Lokasi: (US) East US
    • Nama: link-demo-sg-c-pe1
    • Sub-sumber daya target: coordinator
    • Jaringan virtual: link-demo-net
    • Subnet: link-demo-subnet
    • Integrasikan dengan zona DNS pribadi: Ya
  8. Pilih OK.

  9. Setelah Anda membuat titik akhir privat, pilih Tinjau + buat lalu pilih Buat untuk membuat kluster Anda.

Mengakses kluster secara privat dari VM

Tautan privat memungkinkan VM untuk terhubung ke kluster, dan mencegah host eksternal melakukannya. Dalam langkah ini, Anda memeriksa bahwa klien database psql pada VM Anda dapat berkomunikasi dengan simpul koordinator kluster.

PG_URI='host=c-link-demo-sg.12345678901234.postgres.cosmos.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'

# Attempt to connect to cluster with psql in the VM

az vm run-command invoke \
	--resource-group link-demo \
	--name link-demo-vm \
	--command-id RunShellScript \
	--scripts "psql '$PG_URI' -c 'SHOW citus.version;'" \
	--query 'value[0].message' \
	| xargs printf

Catatan

Di string koneksi, ganti {your_password} dengan kata sandi kluster atau token ID Microsoft Entra Anda. Untuk informasi selengkapnya, lihat opsi autentikasi.

Anda akan melihat nomor versi untuk Citus dalam output. Jika Anda melakukannya, maka psql mampu mengeksekusi perintah, dan tautan privat berhasil berfungsi.

Membersihkan sumber daya

Anda telah melihat cara membuat tautan privat antara VM dan kluster. Sekarang Anda dapat mendeprovisi sumber daya.

Hapus grup sumber daya, dan sumber daya di dalamnya akan dihapus dari penyediaan.

az group delete --resource-group link-demo

# press y to confirm

Langkah berikutnya