Ikhtisar pustaka Azure SDK untuk bahasa pemrograman Go

Azure SDK untuk Go mencakup pustaka manajemen dan pustaka klien bidang data. Artikel ini memberikan gambaran umum sehingga Anda dapat memahami apa itu perpustakaan perangkat lunak, bagaimana perpustakaan tersebut cocok dengan alur kerja Azure, dan langkah selanjutnya untuk pola yang khusus untuk Go.

Pustaka manajemen

Gunakan pustaka manajemen untuk menyediakan, mengonfigurasi, dan mengatur sumber daya Azure. Mereka fokus pada pengelolaan sumber daya itu sendiri daripada data yang disimpan di dalamnya. Pustaka manajemen melakukan operasi control plane, yang mengelola sumber daya Azure dan konfigurasi layanan. Tugas umum meliputi:

  • Membuat atau memperbarui grup sumber daya, jaringan virtual, atau komputer virtual.
  • Mengonfigurasi pengaturan keamanan, identitas, kebijakan akses, dan diagnostik.
  • Mencantumkan, memberi tag, dan menghapus sumber daya Azure di seluruh langganan.
  • Mengotomatiskan penyebaran, pembersihan, kepatuhan, dan operasi platform.

Paket pustaka manajemen memiliki nama seperti armcompute, armnetwork, dan armkeyvault. Gunakan pustaka manajemen selama fase penyiapan, konfigurasi, dan tata kelola siklus hidup aplikasi. Untuk dokumentasi paket terperinci, cari paket di pkg.go.dev.

Perpustakaan Klien

Gunakan pustaka klien saat aplikasi Go Anda perlu bekerja dengan data atau permukaan runtime di dalam layanan Azure yang sudah disediakan. Pustaka klien melakukan operasi sarana data , yang bekerja dengan data yang disimpan di atau mengalir melalui layanan. Tugas umum meliputi:

  • Mengunggah dan mengunduh blob dari akun penyimpanan.
  • Mengirim dan menerima pesan dengan Bus Layanan atau Azure Event Hubs.
  • Membaca, menulis, atau menghapus rekaman dalam database.
  • Mengambil rahasia dari Key Vault.
  • Menjalankan kueri atau operasi terhadap sumber daya yang disediakan.

Paket pustaka klien memiliki nama seperti azblob, , azstorageazsecrets, azservicebus, dan azeventhubs. Gunakan pustaka klien setelah Anda memprovisikan layanan Azure yang mendasarinya dengan menggunakan pustaka manajemen. Untuk dokumentasi paket terperinci, cari paket di pkg.go.dev.

Menggunakan pustaka manajemen dan klien

Satu solusi Go dapat menggunakan pustaka manajemen dan klien di kedua bidang kontrol dan data. Misalnya, Anda dapat menggunakan pustaka manajemen selama penyiapan untuk membuat akun penyimpanan (sarana kontrol), lalu menggunakan pustaka klien di aplikasi untuk mengunggah dan mengunduh blob (bidang data). Memahami perbedaan membantu Anda memilih pustaka yang tepat untuk setiap tugas dalam alur kerja Anda.

Untuk Pola dan Contoh khusus Go untuk setiap tingkatan, lihat artikel berikut:

Menginstal paket Go

Di sebagian besar proyek, Anda menginstal paket Go untuk penerapan versi dan manajemen dependensi.

Untuk menginstal paket Go, jalankan go get perintah .

Misalnya, untuk menginstal armcompute paket, jalankan perintah berikut:

go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute

Di sebagian besar aplikasi Go, instal paket berikut untuk autentikasi:

  • github.com/Azure/azure-sdk-for-go/sdk/azcore/to
  • github.com/Azure/azure-sdk-for-go/sdk/azidentity

Mengimpor paket ke dalam kode Go Anda

Setelah mengunduh paket, impor ke aplikasi Anda dengan menggunakan import pernyataan :

import (
    "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)

Mengautentikasi ke Azure

Aplikasi Go yang menggunakan pustaka Azure SDK harus mengautentikasi dengan menggunakan Microsoft Entra ID dengan pustaka Azure Identity. Autentikasi berbasis token lebih aman dan dapat dikelola daripada string koneksi atau kunci. Kredensial yang direkomendasikan bergantung pada tempat aplikasi berjalan: menggunakan identitas terkelola untuk aplikasi yang dihosting Azure, kredensial pengembang, atau perwakilan layanan untuk pengembangan lokal, dan perwakilan layanan untuk sebagian besar skenario lokal.

Opsi autentikasi default adalah DefaultAzureCredential, yang menggunakan variabel lingkungan yang ditetapkan sebelumnya dalam artikel ini. Di kode Go Anda, buat azidentity objek sebagai berikut:

cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
  // handle error
}

Untuk informasi selengkapnya tentang autentikasi, lihat Azure SDK untuk autentikasi Go.

Membuat klien Manajemen Sumber Daya

Setelah Anda mendapatkan kredensial dari Azure Identity, buat klien untuk menyambungkan ke layanan Azure target.

Misalnya, Anda ingin tersambung ke layanan Azure Compute. Paket Compute terdiri dari satu atau beberapa klien. Klien mengelompokkan sekumpulan API terkait, menyediakan akses ke fungsionalitasnya dalam langganan yang ditentukan. Anda membuat satu atau beberapa klien untuk mengakses API yang Anda butuhkan.

Kode berikut menggunakan tipe armcompute.NewVirtualMachinesClient untuk membuat klien untuk mengelola mesin virtual.

client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
if err != nil {
  // handle error
}

Untuk informasi selengkapnya tentang mengelola sumber daya Azure dengan Go, lihat gunakan Azure SDK untuk operasi bidang kontrol.

Gunakan pola yang sama untuk terhubung dengan layanan Azure lainnya. Misalnya, instal paket armnetwork dan buat jaringan virtual klien untuk mengelola sumber daya jaringan virtual.

client, err := armnetwork.NewVirtualNetworksClient("<subscription ID>", cred, nil)
if err != nil {
  // handle error
}

Sampel kode:

package main

import (
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
)

func main() {
    cred, err := azidentity.NewDefaultAzureCredential(nil)
    if err != nil {
        // handle error
    }
    client, err := armcompute.NewVirtualMachinesClient("<subscription ID>", cred, nil)
    if err != nil {
        // handle error
    }
}

Untuk informasi selengkapnya tentang menggunakan Azure SDK untuk Go dalam layanan Azure, lihat Gunakan Azure SDK untuk Go dalam operasi lapisan data.

Menggunakan repositori Azure SDK untuk Go

Setelah Anda membuat instans klien, gunakan untuk melakukan panggilan API ke sumber daya Azure Anda. Untuk skenario manajemen sumber daya, sebagian besar kasus penggunaan adalah operasi CRUD (buat, baca, perbarui, hapus).

Untuk menemukan operasi untuk jenis tertentu, telusuri sumber di repositori Azure SDK untuk Go GitHub. Sumber SDK diatur di bawah direktori sdk/, dengan pustaka manajemen di bawah sdk/resourcemanager/ dan pustaka klien di folder khusus layanan seperti sdk/storage/ dan sdk/security/keyvault/.

Untuk menemukan sumber untuk jenis tertentu, ikuti langkah-langkah berikut:

  1. Buka Azure SDK untuk repositori Go di GitHub.
  2. Navigasikan ke sdk/resourcemanager/ untuk pustaka manajemen, atau sdk/ untuk pustaka klien.
  3. Buka folder layanan lalu folder paket. Contohnya, sdk/resourcemanager/compute/armcompute/.
  4. Temukan file sumber yang berisi jenis yang Anda butuhkan. Jenis klien dan metodenya biasanya dalam file yang dinamai sesuai klien, seperti virtualmachines_client.go.
  5. Baca komentar jenis dan signatur fungsi untuk informasi penggunaan.

Anda juga dapat membangun URL secara langsung. Misalnya, untuk menemukan sumber operasi grup sumber daya, navigasikan ke https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/resourcemanager/resources/armresources.

Contoh ini menunjukkan cara menemukan sumber untuk operasi grup sumber daya Azure:

  1. Buka Azure SDK untuk repositori Go di GitHub.
  2. Navigasi ke sdk/resourcemanager/resources/armresources/.
  3. Buka resource_groups_client.go untuk menemukan jenis ResourceGroupsClient dan metode CreateOrUpdate.
  4. Baca komentar dan parameter metode untuk memahami cara melakukan panggilan API.

Untuk dokumentasi referensi yang dihasilkan, cari paket di pkg.go.dev.

Operasi jangka panjang

Beberapa operasi membutuhkan waktu lama untuk diselesaikan. Untuk menangani operasi-operasi ini, perpustakaan manajemen menyediakan fungsi yang mendukung operasi jangka panjang (LRO) melalui pemanggilan asinkron. Nama fungsi ini dimulai dengan Begin, seperti BeginCreate dan BeginDelete.

Karena fungsi-fungsi ini asinkron, kode Anda tidak memblokir saat fungsi menyelesaikan tugasnya. Sebagai gantinya, fungsi segera mengembalikan objek poller . Kode Anda kemudian memanggil fungsi poller sinkron yang kembali saat fungsi asinkron asli selesai.

Cuplikan kode berikut menunjukkan contoh pola ini.

ctx := context.Background()
// Call an asynchronous function to create a client. The return value is a poller object.
poller, err := client.BeginCreate(ctx, "resource_identifier", "additional_parameter")

if err != nil {
    // handle error...
}

// Call the poller object's PollUntilDone function that will block until the poller object
// has been updated to indicate the task has completed.
resp, err = poller.PollUntilDone(ctx, nil)
if err != nil {
    // handle error...
}

// Print the fact that the LRO completed.
fmt.Printf("LRO done")

// Work with the response ("resp") object.

Poin utama:

  • Fungsi PollUntilDone memerlukan interval polling yang menentukan seberapa sering fungsi tersebut mencoba mendapatkan status. interval default menjadi 30 detik jika Anda meneruskan nil untuk parameter opsi, tetapi Anda dapat menyesuaikannya berdasarkan kebutuhan Anda.
  • Interval biasanya singkat. Silakan merujuk ke dokumen sumber daya Azure tertentu untuk interval yang direkomendasikan.
  • Bagian LRO dari halaman Panduan Desain Go Azure SDK memiliki contoh yang lebih canggih dan panduan umum untuk LRO.

Untuk detail selengkapnya tentang pola, lihat pola penggunaan Common di Azure SDK untuk Go.

Langkah selanjutnya

Untuk informasi selengkapnya tentang autentikasi, pembangunan klien, operasi jangka panjang, dan pola panduan penggunaan layanan, lihat artikel khusus bidang:

Misalnya, lihat Azure SDK untuk sampel Go pada GitHub.