Aracılığıyla paylaş


Azure Stack Hub'da Java ile API sürüm profillerini kullanma

Önemli

Java SDK, iz 1'den iz 2'ye güncellendi. Mümkün olan en kısa sürede yol 2 SDK'sına geçiş yapmanızı tavsiye ederiz. Yönergeler için bu geçiş kılavuzuna bakın.

Azure Stack Hub Resource Manager için Java SDK'sı, altyapınızı oluşturmanıza ve yönetmenize yardımcı olacak araçlar sağlar. SDK'daki kaynak sağlayıcıları arasında işlem, ağ, depolama, uygulama hizmetleri ve Azure Key Vault bulunur. Karma Java Örnekleri deposunu GitHub'da bulabilirsiniz. Bu makale ortamınızı ayarlamanıza, doğru kimlik bilgilerini almanıza, depoyu almanıza ve Azure Stack Hub'da bir kaynak grubu oluşturmanıza yardımcı olur.

Java SDK'sını kullanmak gerçek bir hibrit bulut geliştirici deneyimi sağlar. Java SDK'sında sürümündeki POM.xml sürüm bağımlılıklarını değiştirmek, genel Azure kaynakları arasında Azure Stack Hub'daki kaynaklara geçiş yapmanıza yardımcı olarak karma bulut geliştirmeyi etkinleştirir.

Hizmetlerin en son sürümünü kullanmak için bağımlılık olarak en son profili kullanın.

Mevcut com.azure.resourcemanager bağımlılığınızı alıp sürümünü x.y.zx.y.z-hybridolarak değiştirerek uygulamanızı Azure tack Hub'daki kaynağa hedefleyebilirsiniz. Azure Stack Hub için destek sağlayan karma paketler, sürümün sonunda bir -hybrid sonek kullanır; örneğin, 1.0.0-hybrid. Bu, sürümle ilişkili statik bir uç nokta koleksiyonuna işaret eder.

En son profili almak için mevcut com.azure.resourcemanager bağımlılığınızı alın ve sürümü en son olarak değiştirin. En son profil Java paketleri Azure ile tutarlı bir deneyim sağlar. Paketler, Azure com.azure.resourcemanager ile aynı grup kimliğini paylaşır. Yapıt kimliği ve ad alanları da genel Azure ile aynıdır. Bu, Azure uygulamanızı Azure Stack Hub'a taşımanıza yardımcı olur. Azure Stack Hub'da karma profilin bir parçası olarak kullanılan uç noktalar hakkında daha fazla bilgi edinmek için bkz. API profillerinin özeti.

Profil, Maven projesindeki dosyada bağımlılık olarak belirtilir pom.xml . Açılan listeden doğru sınıfı seçerseniz (.NET'de yaptığınız gibi) profil modülleri otomatik olarak yükler.

Geliştirme ortamınızı ayarlama

Ortamınızı SDK'yı çalıştırmaya hazırlamak için Eclipse veya Visual Studio Code gibi bir IDE kullanabilirsiniz, ancak Git, Java SDK ve Apache Maven'ın yüklü olması gerekir. Geliştirme ortamınızı ayarlama önkoşullarıyla ilgili ayrıntıları Java için Azure SDK'sını kullanma bölümünde bulabilirsiniz

  1. Git'i yükleyin. Git'i yüklemek için resmi yönergeleri Başlarken - Git'i Yükleme bölümünde bulabilirsiniz.

  2. Java SDK'sını yükleyin ve ortam değişkeninizi JAVA_HOME Java Development Kit ikili dosyalarının konumuna ayarlayın. OpenJDK için indirilebilir yükleme medyası yönergelerini bulabilirsiniz. Java Developer Kit'in 8 veya sonraki bir sürümünü yükleyin.

  3. Apache Maven'ı yükleyin. Yönergeleri Apache Maven Projesi'nde bulabilirsiniz. Apache Maven 3.0 veya üzerini yükleyin.

Java ve API sürüm profilleri

Tüm hizmetlerin en son sürümlerini kullanmak için bağımlılık olarak en son profili kullanın.

  • En son profili kullanmak için bağımlılık com.microsoft.azure'dır.

  • Azure Stack Hub'da kullanılabilen en son desteklenen hizmetleri kullanmak için com.microsoft.azure.profile_2019_03_01_hybrid profilini kullanın.

    • Profil ,Pom.xml dosyasında bağımlılık olarak belirtilir ve açılan listeden doğru sınıfı seçerseniz modülleri otomatik olarak yükler (.NET'te olduğu gibi).
  • Bağımlılıklar aşağıdaki gibi görünür:

    <dependency>
    <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
    <artifactId>azure</artifactId>
    <version>1.0.0-beta-1</version>
    </dependency>
    
  • Belirli bir kaynak sağlayıcısındaki bir kaynak türü için belirli API sürümlerini kullanmak için IntelliSense aracılığıyla tanımlanan belirli API sürümlerini kullanın.

Tüm seçenekleri aynı uygulamada birleştirebilirsiniz.

Azure Java SDK'sını yükleme

Java SDK'sını yüklemek için şu adımları izleyin:

  1. Git'i yüklemek için resmi yönergeleri izleyin. Bkz . Başlarken - Git'i Yükleme.

  2. Java SDK'sını ve Maven'ı yüklemek için yönergeleri izleyin. Doğru sürüm, Java Geliştirici Seti'nin 8. sürümüdür. Apache Maven'in doğru sürümü 3.0 veya üzeridir. Hızlı başlangıcı tamamlamak için ortam değişkeninin JAVA_HOME Java Development Kit'in yükleme konumuna ayarlanması gerekir. Daha fazla bilgi için bkz. Java ve Maven ile ilk işlevinizi oluşturma.

  3. Doğru bağımlılık paketlerini yüklemek için Java uygulamanızda Pom.xml dosyasını açın. Aşağıdaki kodda gösterildiği gibi bir bağımlılık ekleyin:

    <dependency>
    <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
    <artifactId>azure</artifactId>
    <version>1.0.0-beta-1</version>
    </dependency>
    
  4. Yüklenmesi gereken paket kümesi, kullanmak istediğiniz profil sürümüne bağlıdır. Profil sürümlerinin paket adları şunlardır:

    • com.microsoft.azure.profile_2019_03_01_hybrid
    • com.microsoft.azure
      • En son

Profiller

Tarih içeren profiller için, farklı bir SDK profili veya sürümü kullanmak için tarihi com.microsoft.azure.profile<date>_hybrid ile değiştirin. Örneğin, 2008 sürümü için profil olur 2019_03_01ve dize olur com.microsoft.azure.profile_2019_03_01_hybrid. SDK ekibinin bazen paketlerin adını değiştirdiğini, bu nedenle bir dizenin tarihini farklı bir tarihle değiştirmenin çalışmayabileceğini unutmayın. Profillerin ve Azure Stack sürümlerinin ilişkilendirmesi için aşağıdaki tabloya bakın.

Azure Stack sürümü Profil
2311 2020_09_01
2301 2020_09_01
2206 2020_09_01
2108 2020_09_01
2102 2020_09_01
2008 01.03.2019

Azure Stack Hub ve API profilleri hakkında daha fazla bilgi için bkz. API profillerinin özeti.

Abonelik

Henüz bir aboneliğiniz yoksa, bir abonelik oluşturun ve daha sonra kullanmak üzere abonelik kimliğini kaydedin. Abonelik oluşturma hakkında bilgi için bu belgeye bakın.

Servis Principal

Bir hizmet sorumlusu ve ilişkili ortam bilgileri oluşturulup bir yere kaydedilmelidir. Rolü olan owner hizmet sorumlusu önerilir, ancak örneğe bağlı olarak bir contributor rol yeterli olabilir. Gerekli değerler için örnek depodaki README'ye bakın. Bu değerleri SDK dili tarafından desteklenen JSON dosyasından (örneklerimizin kullandığı) herhangi bir biçimde okuyabilirsiniz. Çalıştırılan örneğe bağlı olarak, bu değerlerin tümü kullanılamaz. Güncelleştirilmiş örnek kod veya daha fazla bilgi için örnek depoya bakın.

Kiracı Kimliği

Azure Stack Hub'ınızın dizin veya kiracı kimliğini bulmak için bu makaledeki yönergeleri izleyin.

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

Bu belgeyi izleyerek gerekli kaynak sağlayıcılarını kaydedin. Bu kaynak sağlayıcıları çalıştırmak istediğiniz örneklere bağlı olarak gerekli olacaktır. Örneğin, bir VM örneği çalıştırmak istiyorsanız kaynak Microsoft.Compute sağlayıcısı kaydı gereklidir.

Azure Stack resource manager uç birim

Azure Resource Manager (ARM), yöneticilerin Azure kaynaklarını dağıtmasına, yönetmesine ve izlemesine olanak tanıyan bir yönetim çerçevesidir. Azure Resource Manager bu görevleri tek bir işlemde tek tek yerine grup olarak işleyebilir. Meta veri bilgilerini Resource Manager uç noktasından alabilirsiniz. Uç nokta, kodunuzu çalıştırmak için gereken bilgileri içeren bir JSON dosyası döndürür.

  • Azure Stack Geliştirme Seti'ndeki (ASDK) ResourceManagerEndpointUrl şöyledir: https://management.local.azurestack.external/.
  • Tümleşik sistemlerdeki ResourceManagerEndpointUrl şu şekildedir: https://management.region.<fqdn>/burada <fqdn> tam etki alanı adınızdır.
  • Gerekli meta verileri almak için: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Kullanılabilir API sürümleri için bkz. Azure rest API belirtimleri. Örneğin, 2020-09-01 profil sürümünde kaynak sağlayıcı api-version için 2019-10-01'i microsoft.resources olarak değiştirebilirsiniz.

Örnek JSON:

{
   "galleryEndpoint": "https://portal.local.azurestack.external:30015/",
   "graphEndpoint": "https://graph.windows.net/",
   "portal Endpoint": "https://portal.local.azurestack.external/",
   "authentication": 
      {
         "loginEndpoint": "https://login.windows.net/",
         "audiences": ["https://management.yourtenant.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
      }
}

Azure Stack Hub CA kök sertifikasına güvenme

Azure Stack Geliştirme Seti'ni (ASDK) kullanıyorsanız, uzak makinenizde CA kök sertifikasına güvenmeniz gerekir. Azure Stack Hub tümleşik sistemleriyle CA kök sertifikasına güvenmeniz gerekmez.

Windows

  1. Azure Stack Hub otomatik olarak imzalanan sertifikayı masaüstünüzde dışarı aktarın.

  2. Komut isteminde dizinini olarak %JAVA_HOME%\bindeğiştirin.

  3. Aşağıdaki komutu çalıştırın:

    .\keytool.exe -importcert -noprompt -file <location of the exported certificate here> -alias root -keystore %JAVA_HOME%\lib\security\cacerts -trustcacerts -storepass changeit
    

Mevcut API profilleri

  • com.microsoft.azure.profile_2019_03_01_hybrid: Azure Stack Hub için oluşturulan en son profil. 1904 veya sonraki bir sürümde olduğunuz sürece hizmetlerin Azure Stack Hub ile en iyi şekilde uyumlu olması için bu profili kullanın.

  • com.microsoft.azure.profile_2018_03_01_hybrid: Azure Stack Hub için oluşturulan profil. Hizmetlerin Azure Stack Hub 1808 veya sonraki sürümleriyle uyumlu olması için bu profili kullanın.

  • com.microsoft.azure: Tüm hizmetlerin en son sürümlerinden oluşan profil. Tüm hizmetlerin en son sürümlerini kullanın.

Azure Stack Hub ve API profilleri hakkında daha fazla bilgi için bkz. API profillerinin özeti.

Azure Java SDK API profili kullanımı

Aşağıdaki kod, Azure Stack Hub'da hizmet sorumlusunun kimliğini doğrular. Kiracı kimliğini ve Azure Stack Hub'a özgü kimlik doğrulama tabanını kullanarak bir belirteç oluşturur:

AzureTokenCredentials credentials = new ApplicationTokenCredentials(client, tenant, key, AZURE_STACK)
                    .withDefaultSubscriptionID(subscriptionID);
Azure azureStack = Azure.configure()
                    .withLogLevel(com.microsoft.rest.LogLevel.BASIC)
                    .authenticate(credentials, credentials.defaultSubscriptionID());

Bu kod, uygulamanızı Azure Stack Hub'a başarıyla dağıtmak için API profili bağımlılıklarını kullanmanıza olanak tanır.

Azure Stack Hub ortam ayarı işlevlerini tanımlama

Azure Stack Hub bulutunu doğru uç noktalara kaydetmek için aşağıdaki kodu kullanın:

// Get Azure Stack Hub cloud endpoints
final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);

AzureEnvironment AZURE_STACK = new AzureEnvironment(new HashMap<String, String>() {
                {
                    put("managementEndpointUrl", settings.get("audience"));
                    put("resourceManagerEndpointUrl", armEndpoint);
                    put("galleryEndpointUrl", settings.get("galleryEndpoint"));
                    put("activeDirectoryEndpointUrl", settings.get("login_endpoint"));
                    put("activeDirectoryResourceID", settings.get("audience"));
                    put("activeDirectoryGraphResourceID", settings.get("graphEndpoint"));
                    put("storageEndpointSuffix", armEndpoint.substring(armEndpoint.indexOf('.')));
                    put("keyVaultDnsSuffix", ".vault" + armEndpoint.substring(armEndpoint.indexOf('.')));
                }
            });

getActiveDirectorySettings Önceki koddaki çağrı, meta veri uç noktalarından uç noktaları alır. Yapılan çağrıdan ortam değişkenlerini belirtir:

public static HashMap<String, String> getActiveDirectorySettings(String armEndpoint) {

    HashMap<String, String> adSettings = new HashMap<String, String>();
    try {

        // create HTTP Client
        HttpClient httpClient = HttpClientBuilder.create().build();

        // Create new getRequest with below mentioned URL
        HttpGet getRequest = new HttpGet(String.format("%s/metadata/endpoints?api-version=1.0",
                             armEndpoint));

        // Add additional header to getRequest which accepts application/xml data
        getRequest.addHeader("accept", "application/xml");

        // Execute request and catch response
        HttpResponse response = httpClient.execute(getRequest);

        // Check for HTTP response code: 200 = success
        if (response.getStatusLine().getStatusCode() != 200) {
            throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
        }

        String responseStr = EntityUtils.toString(response.getEntity());
        JSONObject responseJson = new JSONObject(responseStr);
        adSettings.put("galleryEndpoint", responseJson.getString("galleryEndpoint"));
        JSONObject authentication = (JSONObject) responseJson.get("authentication");
        String audience = authentication.get("audiences").toString().split("\"")[1];
        adSettings.put("login_endpoint", authentication.getString("loginEndpoint"));
        adSettings.put("audience", audience);
        adSettings.put("graphEndpoint", responseJson.getString("graphEndpoint"));

    } catch (ClientProtocolException cpe) {
        cpe.printStackTrace();
        throw new RuntimeException(cpe);
    } catch (IOException ioe) {
        ioe.printStackTrace();
        throw new RuntimeException(ioe);
    }
    return adSettings;
}

Örnek birim testi projesi

  1. Aşağıdaki komutu kullanarak depoyu kopyalayın:

    git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybrid
    
  2. Bir Azure hizmet sorumlusu oluşturun ve aboneliğe erişmek için bir rol atayın. Hizmet sorumlusu oluşturma yönergeleri için bkz. Azure PowerShell kullanarak sertifikayla hizmet sorumlusu oluşturma.

  3. Aşağıdaki gerekli ortam değişkenlerini alın:

    • AZURE_TENANT_ID
    • AZURE_CLIENT_ID
    • AZURE_CLIENT_SECRET
    • AZURE_SUBSCRIPTION_ID
    • ARM_ENDPOINT
    • RESOURCE_LOCATION
  4. Komut istemini kullanarak oluşturduğunuz hizmet sorumlusundan alınan bilgileri kullanarak aşağıdaki ortam değişkenlerini ayarlayın:

    • export AZURE_TENANT_ID={your tenant ID}
    • export AZURE_CLIENT_ID={your client ID}
    • export AZURE_CLIENT_SECRET={your client secret}
    • export AZURE_SUBSCRIPTION_ID={your subscription ID}
    • export ARM_ENDPOINT={your Azure Stack Hub Resource Manager URL}
    • export RESOURCE_LOCATION={location of Azure Stack Hub}

    Windows'ta export yerine set kullanın.

  5. İşlevi getActiveDirectorySettings kullanarak Azure Resource Manager meta veri uç noktalarını alın.

    // Get Azure Stack Hub cloud endpoints
    final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);
    
  6. Pom.xml dosyasına aşağıdaki bağımlılığı ekleyerek Azure Stack Hub için 2019-03-01-karma profilini kullanın. Bu bağımlılık İşlem, Ağ, Depolama, Key Vault ve App Services kaynak sağlayıcıları için bu profille ilişkili modülleri yükler:

    <dependency>
      <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
      <artifactId>azure</artifactId>
      <version>1.0.0-beta-1</version>
    </dependency>
    
  7. Ortam değişkenlerini ayarlamak için açık olan komut istemine aşağıdaki komutu girin:

    mvn clean compile exec:java
    

Örnekler

Güncel (izlem 2) örnek kod için bu örnek depoya göz atın. Parça 1 örnek kodu için bu örnek depoya bakın. Kök README.md , genel gereksinimleri açıklar ve her alt dizin, bu örneğin nasıl çalıştırıldığına ilişkin belirli README.md bir örneği içerir.

Azure Stack sürümü veya profili 2008 için geçerli olan örnek için 2019-03-01 bakın ve aşağıya bakın.

Sonraki Adımlar

API profilleri hakkında daha fazla bilgi edinin: