Menggunakan profil versi API dengan Java di Azure Stack Hub

Penting

Java SDK telah diperbarui dari trek 1 ke trek 2. Sebaiknya migrasi ke SDK trek 2 sesegera mungkin. Untuk petunjuknya, lihat panduan migrasi ini.

Java SDK untuk Azure Stack Hub Resource Manager menyediakan alat untuk membantu Anda membangun dan mengelola infrastruktur Anda. Penyedia sumber di SDK mencakup komputasi, jaringan, penyimpanan, layanan aplikasi, dan Azure Key Vault. Anda bisa menemukan repositori Sampel Java Hybrid di GitHub. Artikel ini akan membantu Anda mengatur lingkungan Anda, mendapatkan informasi masuk yang tepat, mengambil repositori, dan membuat grup sumber daya di Azure Stack Hub.

Penggunaan Java SDK mendukung pengalaman pengembang cloud hibrida sejati. Mengalihkan dependensi versi di POM.xml Java SDK memungkinkan pengembangan cloud hibrida dengan membantu Anda beralih antara sumber daya Azure global ke sumber daya di Azure Stack Hub.

Untuk menggunakan versi terbaru layanan, gunakan profil terbaru sebagai dependensi.

Anda dapat menargetkan aplikasi Anda ke sumber daya di Azure Stack Hub dengan mengambil dependensi com.azure.resourcemanager yang ada dan mengubah versinya dari x.y.z menjadi x.y.z-hybrid. Paket hibrida, yang menyediakan dukungan untuk Azure Stack Hub, menggunakan sufiks-hybrid di akhir versi, contohnya, 1.0.0-hybrid. Ini akan menunjuk ke kumpulan titik akhir statis yang berkaitan dengan versi tersebut.

Untuk mendapatkan profil terbaru, ambil dependensi com.azure.resourcemanager Anda yang ada dan ubah versinya menjadi yang terbaru. Paket Java profil terbaru memberikan pengalaman yang konsisten dengan Azure. Paket berbagi ID grup yang sama dengan Azure com.azure.resourcemanager. ID artefak dan namespaces layanan juga sama dengan Azure global. Ini membantu dalam porting aplikasi Azure Anda ke Azure Stack Hub. Untuk melihat keterangan lengkap terkait titik akhir yang digunakan di Azure Stack Hub sebagai bagian profil hibrida, lihat Ringkasan profil API.

Profil ditentukan dalam file pom.xml dalam proyek Maven sebagai dependensi. Profil memuat modul secara otomatis jika Anda memilih kelas yang tepat dari pilihan menurun (seperti halnya dengan .NET).

Menyiapkan lingkungan pengembangan Anda

Untuk mempersiapkan lingkungan Anda menjalankan SDK, Anda dapat menggunakan IDE seperti Eclipse atau Visual Studio Code, tetapi Anda harus menginstal Git, Java SDK, dan Apache Maven. Anda dapat menemukan detail tentang prasyarat untuk menyiapkan lingkungan pengembangan Anda di Gunakan Azure SDK untuk Java

  1. Pasang Git. Anda dapat menemukan instruksi resmi untuk memasang Git di Memulai - Memasang Git.

  2. Memasang Java SDK dan atur variabel lingkungan Anda JAVA_HOME ke lokasi binari untuk Java Development Kit. Anda dapat menemukan petunjuk media pemasangan yang dapat diunduh untuk OpenJDK. Pasang versi 8 atau lebih besar dari Java Developer Kit.

  3. Pasang Apache Maven. Anda bisa menemukan instruksi di Apache Maven Project. Pasang Apache Maven adalah 3.0 atau lebih tinggi.

Profil versi Java dan API

Untuk menggunakan versi terbaru layanan, gunakan profil terbaru sebagai dependensi.

  • Untuk menggunakan profil terbaru, dependensinya yaitu com.microsoft.azure.

  • Untuk menggunakan dukungan layanan terbaru yang tersedia di Azure Stack Hub, gunakan profil com.microsoft.azure.profile_2019_03_01_hybrid.

    • Profil ditentukan dalam file Pom.xml sebagai dependensi, yang memuat modul secara otomatis jika Anda memilih kelas yang tepat dari daftar pilihan menurun (seperti halnya dengan .NET).
  • Dependensi muncul seperti berikut ini:

    <dependency>
    <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
    <artifactId>azure</artifactId>
    <version>1.0.0-beta-1</version>
    </dependency>
    
  • Untuk menggunakan versi API tertentu untuk jenis sumber daya di penyedia sumber tertentu, gunakan versi API tertentu yang ditentukan melalui Intellisense.

Anda bisa menggabungkan semua opsi di aplikasi yang sama.

Pasang SDK Azure Java

Ikuti langkah-langkah berikut untuk memasang Java SDK:

  1. Ikuti petunjuk resmi untuk memasang Git. Lihat Memulai - Memasang Git.

  2. Ikuti petunjuk untuk memasang Java SDK dan Maven. Versi yang benar yaitu versi 8 dari Java Developer Kit. Versi yang benar dari Apache Maven yaitu 3.0 atau lebih tinggi. Untuk melengkapi mulai cepat, JAVA_HOME variabel lingkungan harus diatur ke lokasi pemasangan Java Development Kit. Untuk informasi selengkapnya, lihat Membuat fungsi pertama Anda dengan Java serta Maven.

  3. Untuk memasang paket dependensi yang benar, buka file Pom.xml di aplikasi Java Anda. Tambahkan dependensi, seperti yang ditunjukkan pada kode berikut:

    <dependency>
    <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
    <artifactId>azure</artifactId>
    <version>1.0.0-beta-1</version>
    </dependency>
    
  4. Set paket yang perlu dipasang bergantung pada versi profil yang ingin Anda gunakan. Nama paket untuk versi profil yaitu:

    • com.microsoft.azure.profile_2019_03_01_hybrid
    • com.microsoft.azure
      • terbaru

Profil

Untuk profil yang berisi tanggal, untuk menggunakan profil atau versi SDK yang berbeda, ganti tanggal di com.microsoft.azure.profile<date>_hybrid. Misalnya, untuk versi 2008, profilnya adalah 2019_03_01, dan string menjadi com.microsoft.azure.profile_2019_03_01_hybrid. Perhatikan bahwa terkadang tim SDK mengubah nama paket, jadi hanya mengganti tanggal string dengan tanggal yang berbeda mungkin tidak berhasil. Lihat tabel berikut untuk asosiasi profil dan versi Azure Stack.

Versi Azure Stack Profil
2311 2020_09_01
2301 2020_09_01
2206 2020_09_01
2108 2020_09_01
2102 2020_09_01
2008 2019_03_01

Untuk informasi selengkapnya tentang Azure Stack Hub serta profil API, lihat Ringkasan profil API.

Langganan

Jika Anda belum memiliki langganan, buat langganan dan simpan ID langganan yang akan digunakan nanti. Untuk informasi tentang cara membuat langganan, lihat dokumen ini.

Perwakilan Layanan

Perwakilan layanan dan informasi lingkungan terkait harus dibuat dan disimpan di suatu tempat. Perwakilan layanan dengan peran owner direkomendasikan, tetapi tergantung sampel, peran contributor mungkin sudah cukup. Lihat README di repositori sampel untuk nilai yang diperlukan. Anda dapat membaca nilai-nilai ini dalam format apa pun yang didukung oleh bahasa SDK seperti dari file JSON (yang digunakan dalam sampel kami). Bergantung pada sampel yang dijalankan, tidak semua nilai ini dapat digunakan. Lihat repositori sampel untuk mengetahui kode sampel terbaru atau informasi lebih lanjut.

ID Penyewa

Ikuti petunjuk dalam artikel ini untuk menemukan direktori atau ID penyewa untuk Azure Stack Hub Anda.

Mendaftarkan penyedia sumber daya

Daftarkan penyedia sumber daya yang diperlukan dengan mengikuti dokumen ini. Penyedia sumber daya ini akan diperlukan, tergantung sampel yang ingin Anda jalankan. Misalnya, jika Anda ingin menjalankan sampel mesin virtual, pendaftaran penyedia sumber daya Microsoft.Compute diperlukan.

Titik akhir Azure Stack resource manager

Azure Resource Manager (ARM) adalah kerangka kerja manajemen yang memungkinkan administrator untuk menyebarkan, mengelola, dan memantau sumber daya Azure. Azure Resource Manager dapat menangani tugas-tugas ini sebagai grup, bukan secara individu, dalam satu operasi. Anda bisa mendapatkan info metadata dari titik akhir Resource Manager. Titik akhir mengembalikan file JSON dengan info yang dibutuhkan untuk menjalankan kode Anda.

  • ResourceManagerEndpointUrl di Azure Stack Development Kit (ASDK) adalah: https://management.local.azurestack.external/.
  • ResourceManagerEndpointUrl dalam sistem terintegrasi adalah: https://management.region.<fqdn>/, dengan <fqdn> adalah nama domain Anda yang sepenuhnya memenuhi syarat.
  • Untuk mengambil metadata yang dibutuhkan: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Untuk versi API yang tersedia, lihat Spesifikasi rest API Azure. Misalnya, dalam versi profil 2020-09-01, Anda dapat mengubah api-version ke 2019-10-01 untuk penyedia sumber daya microsoft.resources.

JSON Sampel:

{
   "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"]
      }
}

Percayai sertifikat root Azure Stack Hub CA

Jika Anda memakai Azure Stack Development Kit (ASDK), Anda harus mempercayai sertifikat root CA pada mesin jarak jauh Anda. Anda tidak perlu mempercayai sertifikat root CA dengan sistem terintegrasi Azure Stack Hub.

Windows

  1. Ekspor sertifikat yang ditandatangani sendiri Azure Stack Hub ke desktop Anda.

  2. Dalam perintah, ubah direktori menjadi %JAVA_HOME%\bin.

  3. Jalankan perintah berikut:

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

Profil API yang ada

  • com.microsoft.azure.profile_2019_03_01_hybrid: Profil terbaru yang dibuat untuk Azure Stack Hub. Gunakan profil ini agar layanannya menjadi paling kompatibel dengan Azure Stack Hub, selama Anda menggunakan versi 1904 atau yang lebih baru.

  • com.microsoft.azure.profile_2018_03_01_hybrid: Profil yang dibuat untuk Azure Stack Hub. Gunakan profil ini untuk layanan agar kompatibel dengan Azure Stack Hub versi 1808 atau yang lebih baru.

  • com.microsoft.azure: Profil yang terdiri dari versi terbaru dari semua layanan. Gunakan versi yang terbaru dari semua layanan.

Untuk informasi selengkapnya tentang Azure Stack Hub serta profil API, lihat Ringkasan profil API.

Penggunaan profil Azure Java SDK API

Kode berikut mengautentikasi perwakilan layanan di Azure Stack Hub. Kode ini membuat token dengan ID penyewa dan basis autentikasi yang khusus dibuat untuk Azure Stack Hub:

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());

Dengan kode ini, Anda dapat menggunakan dependensi profil API untuk berhasil menyebarkan aplikasi Anda ke Azure Stack Hub.

Menentukan fungsi pengaturan lingkungan Azure Stack Hub

Untuk mendaftarkan cloud Azure Stack Hub dengan titik akhir yang benar, gunakanlah kode berikut:

// 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('.')));
                }
            });

Panggilan getActiveDirectorySettings dalam kode sebelumnya mengambil titik akhir dari titik akhir metadata. Ini menyatakan variabel lingkungan dari panggilan yang dibuat:

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;
}

Proyek uji unit sampel

  1. Kloning repositori dengan menggunakan perintah berikut:

    git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybrid
    
  2. Buat perwakilan layanan Azure lalu tetapkan peran untuk mengakses langganan. Untuk petunjuk tentang pembuatan perwakilan layanan, lihat Menggunakan Azure PowerShell untuk membuat perwakilan layanan dengan sertifikat.

  3. Ambil variabel lingkungan yang diperlukan berikut ini:

    • AZURE_TENANT_ID
    • AZURE_CLIENT_ID
    • AZURE_CLIENT_SECRET
    • AZURE_SUBSCRIPTION_ID
    • ARM_ENDPOINT
    • RESOURCE_LOCATION
  4. Atur variabel lingkungan berikut ini menggunakan informasi yang Anda ambil dari perwakilan layanan yang Anda buat menggunakan perintah:

    • 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}

    Di Windows, gunakan atur bukan ekspor.

  5. Gunakan fungsi getActiveDirectorySettings untuk mengambil titik akhir metadata Azure Resource Manager.

    // Get Azure Stack Hub cloud endpoints
    final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);
    
  6. Dalam file Pom.xml, tambahkan dependensi berikut untuk menggunakan profil 2019-03-01-hybrid untuk Azure Stack Hub. Dependensi ini memasang modul yang terkait dengan profil ini untuk penyedia sumber daya Komputasi, Jaringan, Penyimpanan, Brankas Kunci, dan Azure App Services:

    <dependency>
      <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
      <artifactId>azure</artifactId>
      <version>1.0.0-beta-1</version>
    </dependency>
    
  7. Di perintah yang terbuka untuk mengatur variabel lingkungan, masukkan perintah berikut:

    mvn clean compile exec:java
    

Sampel

Lihat repositori sampel ini untuk kode sampel update-to-date (track 2). Lihat repositori sampel ini untuk kode sampel trek 1. Akar README.md menjelaskan persyaratan umum, dan setiap subdirektori berisi sampel tertentu dengan README.md masing-masing tentang cara menjalankan sampel tersebut.

Lihat di sini untuk mengetahui sampel yang berlaku pada versi 2008 atau profil 2019-03-01 Azure Stack dan di bawah ini.

Langkah berikutnya

Pelajari selengkapnya tentang profil API: