Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
- Buka Azure SDK untuk repositori Go di GitHub.
- Navigasikan ke
sdk/resourcemanager/untuk pustaka manajemen, atausdk/untuk pustaka klien. - Buka folder layanan lalu folder paket. Contohnya,
sdk/resourcemanager/compute/armcompute/. - Temukan file sumber yang berisi jenis yang Anda butuhkan. Jenis klien dan metodenya biasanya dalam file yang dinamai sesuai klien, seperti
virtualmachines_client.go. - 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:
- Buka Azure SDK untuk repositori Go di GitHub.
- Navigasi ke
sdk/resourcemanager/resources/armresources/. - Buka
resource_groups_client.gountuk menemukan jenisResourceGroupsClientdan metodeCreateOrUpdate. - 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
PollUntilDonememerlukan interval polling yang menentukan seberapa sering fungsi tersebut mencoba mendapatkan status. interval default menjadi 30 detik jika Anda meneruskanniluntuk 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:
- Gunakan Azure SDK untuk operasi sarana kontrol untuk alur kerja Go yang berorientasi manajemen.
- Gunakan Azure SDK untuk operasi bidang data untuk pola akses data runtime yang sering mengikuti provisi.
Misalnya, lihat Azure SDK untuk sampel Go pada GitHub.