Aracılığıyla paylaş


Hızlı Başlangıç: Java 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. Azure Yönetilen CCF hakkında daha fazla bilgi için bkz . Azure Yönetilen Gizli Konsorsiyum Çerçevesi Hakkında.

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

API başvuru belgeleri | Kitaplık kaynak kodu | Paketi (maven merkezi deposu)

Önkoşullar

Ayarlama

Bu hızlı başlangıçta Azure Hizmetleri'nde kullanıcının kimliğini doğrulamak için Azure CLI veya Azure PowerShell ile birlikte Azure Kimlik kitaplığı kullanılmaktadır. Geliştiriciler, aramalarının kimliğini doğrulamak için Windows veya Linux Code çalıştıran bir bilgisayarda Visual Studio'yu da kullanabilir. Daha fazla bilgi için bkz . Azure Identity istemci kitaplığıyla istemcinin kimliğini doğrulama.

Azure'da oturum açma

Azure CLI az login komutunu veya Azure PowerShell Connect-AzAccount cmdlet'ini kullanarak Azure'da oturum açın.

az login

CLI veya PowerShell varsayılan tarayıcınızı açabiliyorsa bunu yapar ve bir Azure oturum açma sayfası yükler. Aksi takdirde, terminalinizde görüntülenen yetkilendirme kodunu ziyaret edin https://aka.ms/devicelogin ve girin.

İstenirse, tarayıcıda hesap kimlik bilgilerinizle oturum açın.

Bağımlılıkları yükleme

<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager-confidentialledger</artifactId>
    <version>1.0.0-beta.3</version>
</dependency>

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"

Java uygulamasını oluşturma

Java için Azure SDK kitaplığı (azure-resourcemanager-confidentialledger), yönetilen CCF kaynakları üzerinde 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.

import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.exception.ManagementException;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.confidentialledger.ConfidentialLedgerManager;
import com.azure.resourcemanager.confidentialledger.fluent.models.ManagedCcfInner;
import com.azure.resourcemanager.confidentialledger.models.DeploymentType;
import com.azure.resourcemanager.confidentialledger.models.LanguageRuntime;
import com.azure.resourcemanager.confidentialledger.models.ManagedCcfProperties;
import com.azure.resourcemanager.confidentialledger.models.MemberIdentityCertificate;
import java.util.*;

public class AzureJavaSdkClient {
    public static void main(String[] args) {
      try {
          AzureProfile profile = new AzureProfile("<tenant id>","<subscription id>", AzureEnvironment.AZURE);
          ConfidentialLedgerManager manager = ConfidentialLedgerManager.authenticate(new DefaultAzureCredentialBuilder().build(), profile);

          MemberIdentityCertificate member0 = new MemberIdentityCertificate()
              .withCertificate("-----BEGIN CERTIFICATE-----\nMIIBvjCCAUSgAwIBAgIUA0YHcPpUCtd...0Yet/xU4G0d71ZtULNWo\n-----END CERTIFICATE-----")
              .withTags(Map.of("Dept", "IT"));
          List<MemberIdentityCertificate> members = new ArrayList<MemberIdentityCertificate>();
          members.add(member0);

          DeploymentType deployment = new DeploymentType().withAppSourceUri("").withLanguageRuntime(LanguageRuntime.JS);
          ManagedCcfProperties properties = new ManagedCcfProperties()
              .withDeploymentType(deployment)
              .withNodeCount(5)
              .withMemberIdentityCertificates(members);

          ManagedCcfInner inner = new ManagedCcfInner().withProperties(properties).withLocation("southcentralus");

          // Send Create request
          manager.serviceClient().getManagedCcfs().create("myResourceGroup", "confidentialbillingapp", inner);

          // Print the Managed CCF resource properties
          ManagedCcfInner app = manager.serviceClient().getManagedCcfs().getByResourceGroup("myResourceGroup", "confidentialbillingapp");
          printAppInfo(app);

          // Delete the resource
          manager.serviceClient().getManagedCcfs().delete("myResourceGroup", "confidentialbillingapp");
        } catch (ManagementException ex) {
            // The x-ms-correlation-request-id is located in the Header
            System.out.println(ex.getResponse().getHeaders().toString());
            System.out.println(ex);
        }
    }

    private static void printAppInfo(ManagedCcfInner app) {
        System.out.println("App Name: " + app.name());
        System.out.println("App Id: " + app.id());
        System.out.println("App Location: " + app.location());
        System.out.println("App type: " + app.type());
        System.out.println("App Properties Uri: " + app.properties().appUri());
        System.out.println("App Properties Language Runtime: " + app.properties().deploymentType().languageRuntime());
        System.out.println("App Properties Source Uri: " + app.properties().deploymentType().appSourceUri());
        System.out.println("App Properties NodeCount: " + app.properties().nodeCount());
        System.out.println("App Properties Identity Uri: " + app.properties().identityServiceUri());
        System.out.println("App Properties Cert 0: " + app.properties().memberIdentityCertificates().get(0).certificate());
        System.out.println("App Properties Cert tags: " + app.properties().memberIdentityCertificates().get(0).tags());
    }
}

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 myResourceGroup

Sonraki adımlar

Bu hızlı başlangıçta Java için Azure 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: