Aracılığıyla paylaş


Hızlı Başlangıç: Go için Azure SDK'sını kullanarak Azure Yönetilen CCF kaynağı oluşturma

Azure Yönetilen CCF (Yönetilen CCF), gizli uygulamaları dağıtmak için yeni ve son derece güvenli bir hizmettir. Yönetilen CCF hakkında daha fazla bilgi için bkz . Azure Yönetilen Gizli Konsorsiyum Çerçevesi Hakkında.

Bu hızlı başlangıçta Go için Azure SDK kitaplığını kullanarak Yönetilen CCF kaynağı oluşturmayı öğreneceksiniz.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

API başvuru belgeleri | Kitaplık kaynak kodu | Paketi (Go)

Ön koşullar

Kurulum

Yeni go uygulaması oluşturma

  1. Komut kabuğunda aşağıdaki komutu çalıştırarak adlı managedccf-appbir klasör oluşturun:
mkdir managedccf-app && cd managedccf-app

go mod init github.com/azure/resourcemanager/confidentialledger

Modülleri yükleme

  1. Azure Gizli Kayıt Defteri modülünü yükleyin.
go get -u github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/confidentialledger/armconfidentialledger@v1.2.0-beta.1

Bu hızlı başlangıç için Go için Azure Identity modülünü de yüklemeniz gerekir.

go get -u github.com/Azure/azure-sdk-for-go/sdk/azidentity

Kaynak grubu oluşturma

Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Southcentralus konumunda myResourceGroup adlı bir kaynak grubu oluşturmak için Azure PowerShell New-AzResourceGroup cmdlet'ini kullanın.

New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"

Kaynak sağlayıcısını kaydetme

Kaynak oluşturmadan önce Azure Yönetilen CCF kaynak türünün aboneliğe kaydedilmesi gerekir.

az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF

az provider register --namespace Microsoft.ConfidentialLedger

Üye oluşturma

Üye için bir anahtar çifti oluşturun. Aşağıdaki komutlar tamamlandıktan sonra, üyenin ortak anahtarı öğesine member0_cert.pem kaydedilir ve özel anahtar öğesine member0_privk.pemkaydedilir.

openssl ecparam -out "member0_privk.pem" -name "secp384r1" -genkey
openssl req -new -key "member0_privk.pem" -x509 -nodes -days 365 -out "member0_cert.pem" -"sha384" -subj=/CN="member0"

Go uygulamasını oluşturma

Yönetim düzlemi kitaplığı, yönetilen CCF kaynaklarında oluşturma ve silme, abonelikle ilişkili kaynakları listeleme ve belirli bir kaynağın ayrıntılarını görüntüleme gibi işlemlere olanak tanır. Aşağıdaki kod parçası, Yönetilen CCF kaynağının özelliklerini oluşturur ve görüntüler.

Main.go dosyasının en üstüne aşağıdaki yönergeleri ekleyin:

package main

import (
    "context"
    "log"
    
    "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/confidentialledger/armconfidentialledger"
)

Kimlik doğrulaması yapma ve istemci fabrikası oluşturma

Bu hızlı başlangıçta oturum açmış kullanıcı, yerel geliştirme için tercih edilen yöntem olan Azure Yönetilen CCF'de kimlik doğrulaması yapmak için kullanılır. Bu örnekte Azure Identity modülünden 'NewDefaultAzureCredential()' sınıfı kullanılmaktadır. Bu sınıf, kimlik sağlamak için farklı seçeneklere sahip farklı ortamlarda aynı kodun kullanılmasına olanak tanır.

cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
    log.Fatalf("Failed to obtain a credential: %v", err)
}

Azure Resource Manager istemci fabrikası oluşturma ve belirteç kimlik bilgilerini kullanarak kimlik doğrulaması yapma.

ctx := context.Background()
clientFactory, err := armconfidentialledger.NewClientFactory("0000000-0000-0000-0000-000000000001", cred, nil)

if err != nil {
    log.Fatalf("Failed to create client: %v", err)
}

Yönetilen CCF kaynağı oluşturma

appName := "confidentialbillingapp"
rgName := "myResourceGroup"

// Create a new resource
poller, err := clientFactory.NewManagedCCFClient().BeginCreate(ctx, rgName, appName, armconfidentialledger.ManagedCCF{
    Location: to.Ptr("SouthCentralUS"),
    Tags: map[string]*string{
        "Department": to.Ptr("Contoso IT"),
    },
    Properties: &armconfidentialledger.ManagedCCFProperties{
        DeploymentType: &armconfidentialledger.DeploymentType{
            AppSourceURI:    to.Ptr(""),
            LanguageRuntime: to.Ptr(armconfidentialledger.LanguageRuntimeJS),
        },
        MemberIdentityCertificates: []*armconfidentialledger.MemberIdentityCertificate{
            {
                Certificate:   to.Ptr("-----BEGIN CERTIFICATE-----\nMIIU4G0d7....1ZtULNWo\n-----END CERTIFICATE-----"),
                Encryptionkey: to.Ptr(""),
                Tags: map[string]any{
                    "owner": "IT Admin1",
                },
            }},
        NodeCount: to.Ptr[int32](3),
    },
}, nil)

if err != nil {
    log.Fatalf("Failed to finish the request: %v", err)
}

_, err = poller.PollUntilDone(ctx, nil)

if err != nil {
    log.Fatalf("Failed to pull the result: %v", err)
}

Yönetilen CCF kaynağının özelliklerini alma

Aşağıdaki kod parçası, önceki adımda oluşturulan Yönetilen CCF kaynağını alır.

log.Println("Getting the Managed CCF resource.")

// Get the resource details and print it
getResponse, err := clientFactory.NewManagedCCFClient().Get(ctx, rgName, appName, nil)

if err != nil {
    log.Fatalf("Failed to get details of mccf instance: %v", err)
}

// Print few properties of the Managed CCF resource
log.Println("Application name:", *getResponse.ManagedCCF.Properties.AppName)
log.Println("Node Count:", *getResponse.ManagedCCF.Properties.NodeCount)

Bir Kaynak Grubundaki Yönetilen CCF kaynaklarını listeleme

Aşağıdaki kod parçası, kaynak grubundaki Yönetilen CCF kaynaklarını alır.

pager := clientFactory.NewManagedCCFClient().NewListByResourceGroupPager(rgName, nil)

for pager.More() {
    page, err := pager.NextPage(ctx)
    if err != nil {
        log.Fatalf("Failed to advance page: %v", err)
    }

    for _, v := range page.Value {
        log.Println("Application Name:", *v.Name)
    }
}

Yönetilen CCF kaynağını silme

Aşağıdaki kod parçası Yönetilen CCF kaynağını siler. Diğer Yönetilen CCF makaleleri bu hızlı başlangıcı temel alabilir. Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz.

deletePoller, err := clientFactory.NewManagedCCFClient().BeginDelete(ctx, rgName, appName, nil)

if err != nil {
    log.Fatalf("Failed to finish the delete request: %v", err)
}

_, err = deletePoller.PollUntilDone(ctx, nil)

if err != nil {
    log.Fatalf("Failed to get the delete result: %v", err)
}

Kaynakları temizleme

Diğer Yönetilen CCF makaleleri bu hızlı başlangıcı temel alabilir. Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz.

Aksi takdirde, bu makalede oluşturulan kaynakları tamamladığınızda, kaynak grubunu ve içerdiği tüm kaynakları silmek için Azure CLI az group delete komutunu kullanın.

az group delete --resource-group contoso-rg

Sonraki adımlar

Bu hızlı başlangıçta, Gizli Kayıt Defteri için Azure Python SDK'sını kullanarak bir Yönetilen CCF kaynağı oluşturdunuz. Azure Yönetilen CCF ve uygulamalarınızla tümleştirme hakkında daha fazla bilgi edinmek için şu makalelere geçin: