Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Go için Azure SDK yönetim kitaplığı ile kaynak grubu oluşturmayı ve yönetmeyi öğreneceksiniz.
1. Azure kaynaklarını ayarlama
Bu makaledeki adımları tamamlamak için aşağıdaki Azure kaynaklarına ve tanımlayıcılarına ihtiyacınız vardır:
Azure aboneliği: Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.
hizmet sorumlusu oluşturma. Hizmet sorumlusunun uygulama (istemci) kimliğini ve gizli anahtarını not edin. Ayrıca, aboneliğinizdeki Katkıda Bulunan rolünü uygulamaya atamak için yönergeleri izlediğinizden emin olun. Katkıda Bulunan rolü, aboneliğinizdeki tüm kaynakları yönetme izni veren ayrıcalıklı bir yönetici rolüdür.
Sonraki bölüme geçmeden önce abonelik kimliğinizi (Guid), kiracı kimliğinizi (Guid) ve hizmet sorumlusunun istemci/uygulama kimliğini (Guid) ve gizli anahtarını kaydettiğinizden emin olun.
2. Kimlik doğrulamayı ayarlama
Gereksinimlerinize uygun bir kimlik doğrulama yöntemi seçin. Sunucu ve yerel ortamlarda barındırılan uygulamalar için birden çok kimlik bilgisi içermeyen kimlik doğrulama yöntemi sunuyoruz. Go uygulamalarının Azure hizmetlerinde kimlik doğrulamasını sağlamak için Go için Azure SDK'sını kullanma makalesi, senaryonuz için en uygun kimlik doğrulama mekanizmasına karar vermenize yardımcı olacaktır.
3. Kaynak grubu oluşturma
Örnek Go kodunu test edip çalıştırmak ve geçerli dizin olarak ayarlamak için bir dizin oluşturun.
Geçerli dizinde bir modül oluşturmak için go mod init çalıştırın.
go mod init <module_path>
Önemli noktalar:
-
<module_path>
parametresi genelliklegithub.com/<your_github_account_name>/<directory>
gibi bir GitHub deposundaki bir konumdur. - Bir test olarak bir komut satırı uygulaması oluştururken ve uygulamayı yayımlamayacaksanız,
<module_path>
'ın gerçek bir konuma atıfta bulunmasına gerek yoktur.
-
go get komutunu çalıştırarak Go için gerekli olan Azure SDK modüllerini indirin, derleyin ve yükleyin.
go get github.com/Azure/azure-sdk-for-go/sdk/azcore go get github.com/Azure/azure-sdk-for-go/sdk/azcore/to go get github.com/Azure/azure-sdk-for-go/sdk/azidentity go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources
Önemli
Azure kaynak yönetimi kitaplıklarının geçerli sürümüne yönelik paketler
sdk/**/arm**
konumunda bulunur. Yönetim kitaplıklarının önceki sürümünün paketleri/services
altında bulunur. Eski sürümü kullanıyorsanız Go için Azure SDK Geçiş Kılavuzubakın. main.go
adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin. Kodun her bölümü amacını açıklamak için yorumlanır.package main // Import key modules. import ( "context" "log" "os" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "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/resources/armresources" ) // Define key global variables. var ( subscriptionId = "<your_subscription_id>" location = "<your_region>" resourceGroupName = "<your_resource_group_name>" // !! IMPORTANT: Change this to a unique name in your subscription. ctx = context.Background() ) // Define the function to create a resource group. func createResourceGroup(subscriptionId string, credential azcore.TokenCredential) (armresources.ResourceGroupsClientCreateOrUpdateResponse, error) { rgClient, _ := armresources.NewResourceGroupsClient(subscriptionId, credential, nil) param := armresources.ResourceGroup{ Location: to.Ptr(location), } return rgClient.CreateOrUpdate(ctx, resourceGroupName, param, nil) } // Define the standard 'main' function for an app that is called from the command line. func main() { // Create a credentials object. cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Fatalf("Authentication failure: %+v", err) } // Call your function to create an Azure resource group. resourceGroup, err := createResourceGroup(subscriptionId, cred) if err != nil { log.Fatalf("Creation of resource group failed: %+v", err) } // Print the name of the new resource group. log.Printf("Resource group %s created", *resourceGroup.ResourceGroup.ID) }
Önemli noktalar:
-
subscriptionId
değeriAZURE_SUBSCRIPTION_ID
ortam değişkeninden alınır. -
location
veresourceGroupName
dizeleri değerleri test etmek için ayarlanır. Gerekirse bu değerleri konumunuza ve aboneliğinize uygun bir değerle değiştirin.
-
go mod tidy komutunu, kaynak kodunuz temelinde
go.mod
dosyasındaki bağımlılıkları temizlemek için çalıştırın.go mod tidy
Uygulamayı derlemek ve çalıştırmak için
go run
çalıştırın.go run .
4. Sonuçları doğrulayın
Azure portalgidin ve göz atın.
Oturum açın ve Azure aboneliğinizi seçin.
Sol menüde kaynak grupları
seçin. Yeni kaynak grubu, Azure aboneliğinizin kaynak grupları arasında listelenir.
5. Kaynak grubunu güncelleştirme
main.go
dosyanıza dönün.aşağıdaki kodu
main
işlevinin hemen üstüne ekleyin.// Update the resource group by adding a tag to it. func updateResourceGroup(subscriptionId string, credential azcore.TokenCredential) (armresources.ResourceGroupsClientUpdateResponse, error) { rgClient, _ := armresources.NewResourceGroupsClient(subscriptionId, credential, nil) update := armresources.ResourceGroupPatchable{ Tags: map[string]*string{ "new": to.Ptr("tag"), }, } return rgClient.Update(ctx, resourceGroupName, update, nil) }
Kodu ekledikten sonra sonraki bölüme geçin. Kodu sonraki bir bölümde çalıştıracaksınız.
6. Azure aboneliğinin kaynak gruplarını listeleme
main.go
dosyanıza dönün.aşağıdaki kodu
main
işlevinin hemen üstüne ekleyin.// List all the resource groups of an Azure subscription. func listResourceGroups(subscriptionId string, credential azcore.TokenCredential) ([]*armresources.ResourceGroup, error) { rgClient, _ := armresources.NewResourceGroupsClient(subscriptionId, credential, nil) pager := rgClient.NewListPager(nil) var resourceGroups []*armresources.ResourceGroup for pager.More() { resp, err := pager.NextPage(ctx) if err != nil { return nil, err } if resp.ResourceGroupListResult.Value != nil { resourceGroups = append(resourceGroups, resp.ResourceGroupListResult.Value...) } } return resourceGroups, nil }
Kodu ekledikten sonra sonraki bölüme geçin. Kodu sonraki bir bölümde çalıştıracaksınız.
7. Kaynak grubunu silme
main.go
dosyanıza dönün.aşağıdaki kodu
main
işlevinin hemen üstüne ekleyin.// Delete a resource group. func deleteResourceGroup(subscriptionId string, credential azcore.TokenCredential) error { rgClient := armresources.NewResourceGroupsClient(subscriptionId, credential, nil) poller, err := rgClient.BeginDelete(ctx, resourceGroupName, nil) if err != nil { return err } if _, err := poller.PollUntilDone(ctx, nil); err != nil { return err } return nil }
Kodu ekledikten sonra sonraki bölüme geçin. Kodu sonraki bir bölümde çalıştıracaksınız.
8. Ana işlevi güncelleştirin
Önceki bölümlerde, bir kaynak grubu oluşturmak, güncelleştirmek ve silmek için main.go
kodu eklediniz. Ayrıca bir Azure aboneliğindeki tüm kaynak gruplarını listelemek için kod eklediniz. Tüm bu işlevleri sırayla çalıştırmak için:
main.go
içinde,main
işlevini aşağıdaki kodla değiştirin:func main() { // Create a credentials object. cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Fatalf("Authentication failure: %+v", err) } // Call your function to create an Azure resource group. resourceGroup, err := createResourceGroup(subscriptionId, cred) if err != nil { log.Fatalf("Creation of resource group failed: %+v", err) } // Print the name of the new resource group. log.Printf("Resource group %s created", *resourceGroup.ResourceGroup.ID) // Call your function to add a tag to your new resource group. updatedRG, err := updateResourceGroup(subscriptionId, cred) if err != nil { log.Fatalf("Update of resource group failed: %+v", err) } log.Printf("Resource Group %s updated", *updatedRG.ResourceGroup.ID) // Call your function to list all the resource groups. rgList, err := listResourceGroups(subscriptionId, cred) if err != nil { log.Fatalf("Listing of resource groups failed: %+v", err) } log.Printf("Your Azure subscription has a total of %d resource groups", len(rgList)) // Call your function to delete the resource group you created. if err := deleteResourceGroup(subscriptionId, cred); err != nil { log.Fatalf("Deletion of resource group failed: %+v", err) } log.Printf("Resource group deleted") }
Kodu çalıştırın ve çıkışı gözlemleyin.
go run .
2024/07/31 15:29:06 Resource group /subscriptions/<subscription ID>/resourceGroups/myResourceGroup created 2024/07/31 15:29:07 Resource Group /subscriptions/<subscription ID>/resourceGroups/myResourceGroup updated 2024/07/31 15:29:07 Your Azure subscription has a total of 8 resource groups 2024/07/31 15:30:25 Resource group deleted
Not
Kaynak grubunun silinmesi birkaç dakika sürebilir.
Sorun giderme
-
numaralı önceden gönderilmiş soruları Stack Overflow üzerinden kontrol edin veya
Azure
veGo
etiketlerini kullanarak yeni sorular sorun. - Karşılaştığınız herhangi bir hatayı bildirmek için numaralı GitHub sorunu oluşturun
Sonraki adımlar
Go için Azure SDK'sını kullanma hakkında daha fazla bilgi edinin