API-verzióprofilok használata Javával az Azure Stack Hubban

Fontos

A Java SDK frissült az 1. vágányról a 2. vágányra. Javasoljuk, hogy a lehető leghamarabb migráljon a 2. SDK-ra. Útmutatásért tekintse meg ezt a migrálási útmutatót.

Az Azure Stack Hubhoz készült Java SDK Resource Manager eszközöket biztosít az infrastruktúra létrehozásához és kezeléséhez. Az SDK erőforrás-szolgáltatói közé tartozik a számítás, a hálózatkezelés, a tárolás, az alkalmazásszolgáltatások és az Azure Key Vault. A Hibrid Java-minták adattára a GitHubon található. Ez a cikk segítséget nyújt a környezet beállításában, a megfelelő hitelesítő adatok beszerzésében, az adattár megragadásában és egy erőforráscsoport létrehozásában az Azure Stack Hubban.

A Java SDK használata valódi hibrid felhőalapú fejlesztői élményt tesz lehetővé. A Verziófüggőségek közötti váltás a Java SDK-ban POM.xml lehetővé teszi a hibrid felhőfejlesztést azáltal, hogy segít a globális Azure-erőforrások és az Azure Stack Hub erőforrásai közötti váltásban.

A szolgáltatások legújabb verziójának használatához használja függőségként a legújabb profilt.

Az alkalmazást az Azure tack Hub erőforrására célozhatja, ha figyelembe veszi a meglévő com.azure.resourcemanager függőséget, és a verziót értékről x.y.z értékre x.y.z-hybridmódosítja. Az Azure Stack Hubot támogató hibrid csomagok a verzió végén egy -hybrid utótagot használnak, például 1.0.0-hybrid: . Ez a verzióhoz társított végpontok statikus gyűjteményére mutat.

A legújabb profil beszerzéséhez vegye át a meglévő com.azure.resourcemanager függőséget, és módosítsa a verziót a legújabbra. A legújabb Profil Java-csomagok konzisztens élményt biztosítanak az Azure-ral. A csomagok csoportazonosítója megegyezik az Azure com.azure.resourcemanager csoportazonosítójával. Az összetevő azonosítója és a névterek is megegyeznek a globális Azure-zal. Ez segít az Azure-alkalmazás Azure Stack Hubba történő átvitelében. Az Azure Stack Hubban a hibrid profil részeként használt végpontokról további információt az API-profilok összegzése című témakörben talál.

A profil függőségként van megadva pom.xml a Maven-projekt fájljában. A profil automatikusan betölti a modulokat, ha a megfelelő osztályt választja ki a legördülő listából (ahogyan a .NET esetén tenné).

A fejlesztési környezet beállítása

Ahhoz, hogy előkészítse a környezetet az SDK futtatására, használhat egy IDE-t, például az Eclipse-et vagy a Visual Studio Code-ot, de telepítenie kell a Gitet, a Java SDK-t és az Apache Maven-t. A fejlesztési környezet beállításának előfeltételeiről a Javához készült Azure SDK használata című témakörben talál további információt.

  1. Telepítse a Gitet. A Git telepítésére vonatkozó hivatalos utasításokat itt találja: Első lépések – A Git telepítése.

  2. Telepítse a Java SDK-t, és állítsa be a környezeti változót JAVA_HOME a Java Development Kit bináris fájljainak helyére. A letölthető telepítési adathordozóra vonatkozó utasításokat az OpenJDK-hoz találja. Telepítse a Java Developer Kit 8-os vagy újabb verzióját.

  3. Telepítse az Apache Maven-t. Útmutatást az Apache Maven-projektben talál. Telepítse az Apache Maven 3.0-s vagy újabb verzióját.

Java- és API-verzióprofilok

Az összes szolgáltatás legújabb verzióinak használatához használja függőségként a legújabb profilt.

  • A legújabb profil használatához a függőség a com.microsoft.azure.

  • Az Azure Stack Hubban elérhető legújabb támogatott szolgáltatások használatához használja a com.microsoft.azure.profile_2019_03_01_hybrid profilt.

    • A profil a Pom.xml fájlban függőségként van megadva, amely automatikusan betölti a modulokat, ha a megfelelő osztályt választja ki a legördülő listából (ahogyan a .NET esetében tenné).
  • A függőségek a következőképpen jelennek meg:

    <dependency>
    <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
    <artifactId>azure</artifactId>
    <version>1.0.0-beta-1</version>
    </dependency>
    
  • Ha adott API-verziókat szeretne használni egy adott erőforrás-szolgáltató erőforrástípusához, használja az Intellisense által meghatározott API-verziókat.

Az összes beállítást kombinálhatja ugyanabban az alkalmazásban.

Az Azure Java SDK telepítése

A Java SDK telepítéséhez kövesse az alábbi lépéseket:

  1. A Git telepítéséhez kövesse a hivatalos utasításokat. Lásd: Első lépések – A Git telepítése.

  2. Kövesse az utasításokat a Java SDK és a Maven telepítéséhez. A megfelelő verzió a Java Developer Kit 8-ik verziója. Az Apache Maven megfelelő verziója 3.0-s vagy újabb. A rövid útmutató elvégzéséhez a környezeti változót JAVA_HOME a Java fejlesztői készlet telepítési helyére kell állítani. További információ: Az első függvény létrehozása Java és Maven használatával.

  3. A megfelelő függőségi csomagok telepítéséhez nyissa meg a Pom.xml fájlt a Java-alkalmazásban. Adjon hozzá egy függőséget az alábbi kódban látható módon:

    <dependency>
    <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
    <artifactId>azure</artifactId>
    <version>1.0.0-beta-1</version>
    </dependency>
    
  4. A telepíteni kívánt csomagok halmaza a használni kívánt profilverziótól függ. A profilverziók csomagnevei a következők:

    • com.microsoft.azure.profile_2019_03_01_hybrid
    • com.microsoft.azure
      • legújabb

Profilok

Dátumokat tartalmazó profilok esetén, ha másik SDK-profilt vagy -verziót szeretne használni, helyettesítse be a dátumot a következőben: com.microsoft.azure.profile<date>_hybrid. A 2008-es verzió esetében például a profil , 2019_03_01a sztring pedig a lesz com.microsoft.azure.profile_2019_03_01_hybrid. Vegye figyelembe, hogy előfordulhat, hogy az SDK-csapat megváltoztatja a csomagok nevét, ezért előfordulhat, hogy egy sztring dátumának egy másik dátumra való lecserélése nem fog működni. A profilok és az Azure Stack-verziók társítását az alábbi táblázatban találja.

Azure Stack-verzió 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

További információ az Azure Stack Hubról és az API-profilokról: Az API-profilok összegzése.

Előfizetés

Ha még nem rendelkezik előfizetéssel, hozzon létre egy előfizetést, és mentse a később használni kívánt előfizetés-azonosítót. Az előfizetések létrehozásával kapcsolatos további információkért tekintse meg ezt a dokumentumot.

Szolgáltatásnév

A szolgáltatásnevet és a hozzá tartozó környezeti információkat valahol létre kell hozni és menteni kell. A szerepkörrel rendelkező owner szolgáltatásnév használata ajánlott, de a mintától függően elegendő lehet egy contributor szerepkör. A szükséges értékekért tekintse meg a mintaadattár README elemét. Ezeket az értékeket az SDK nyelv által támogatott bármilyen formátumban elolvashatja, például egy JSON-fájlból (amelyet a minták használnak). A futtatott mintától függően nem minden érték használható. A frissített mintakódért vagy további információkért tekintse meg a mintaadattárat .

Bérlőazonosító

Az Azure Stack Hub címtár- vagy bérlőazonosítójának megkereséséhez kövesse az ebben a cikkben található utasításokat.

Erőforrás-szolgáltatók regisztrálása

Regisztrálja a szükséges erőforrás-szolgáltatókat a dokumentum követésével. Ezekre az erőforrás-szolgáltatókra a futtatni kívánt mintáktól függően lesz szükség. Ha például virtuálisgép-mintát szeretne futtatni, az Microsoft.Compute erőforrás-szolgáltató regisztrációjára van szükség.

Azure Stack Resource Manager-végpont

Az Azure Resource Manager (ARM) egy felügyeleti keretrendszer, amely lehetővé teszi a rendszergazdák számára az Azure-erőforrások üzembe helyezését, kezelését és monitorozását. Az Azure Resource Manager ezeket a feladatokat nem egyenként, hanem csoportként tudja kezelni egyetlen műveletben. A metaadat-adatokat a Resource Manager végpontról szerezheti be. A végpont egy JSON-fájlt ad vissza a kód futtatásához szükséges adatokkal.

  • Az Azure Stack Development Kitben (ASDK) található ResourceManagerEndpointUrl a következő: https://management.local.azurestack.external/.
  • Az integrált rendszerekben a ResourceManagerEndpointUrl a következő: https://management.region.<fqdn>/, ahol <fqdn> a teljes tartománynév.
  • A szükséges metaadatok lekéréséhez: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Az elérhető API-verziókért lásd: Azure rest API-specifikációk. Például a profilverzióban 2020-09-01 módosíthatja az api-version erőforrás-szolgáltató microsoft.resourcesértékét2019-10-01.

JSON-minta:

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

Az Azure Stack Hub hitelesítésszolgáltatói főtanúsítványának megbízhatósága

Ha az Azure Stack Development Kitet (ASDK) használja, megbízhatónak kell lennie a hitelesítésszolgáltató főtanúsítványában a távoli gépen. Nem kell megbíznia a hitelesítésszolgáltató főtanúsítványában az Azure Stack Hub integrált rendszereivel.

Windows

  1. Exportálja az Azure Stack Hub önaláírt tanúsítványát az asztalra.

  2. A parancssorban módosítsa a könyvtárat a következőre: %JAVA_HOME%\bin.

  3. Futtassa az alábbi parancsot:

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

Meglévő API-profilok

  • com.microsoft.azure.profile_2019_03_01_hybrid: Az Azure Stack Hubhoz készült legújabb profil. Használja ezt a profilt, hogy a szolgáltatások a leginkább kompatibilisek legyenek az Azure Stack Hubbal, amíg 1904-ben vagy újabb verzióban van.

  • com.microsoft.azure.profile_2018_03_01_hybrid: Az Azure Stack Hubhoz készült profil. Használja ezt a profilt, hogy a szolgáltatások kompatibilisek legyenek az Azure Stack Hub 1808-os vagy újabb verzióival.

  • com.microsoft.azure: Az összes szolgáltatás legújabb verzióiból álló profil. Használja az összes szolgáltatás legújabb verzióit.

Az Azure Stack Hubról és az API-profilokról további információt az API-profilok összegzése című témakörben talál.

Azure Java SDK API-profilhasználat

Az alábbi kód hitelesíti a szolgáltatásnevet az Azure Stack Hubon. Létrehoz egy jogkivonatot a bérlőazonosító és a hitelesítési alap használatával, amely az Azure Stack Hubra jellemző:

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

Ez a kód lehetővé teszi, hogy az API-profil függőségeit használva sikeresen üzembe helyezze az alkalmazást az Azure Stack Hubon.

Azure Stack Hub környezeti beállítási függvények definiálása

Ha az Azure Stack Hub-felhőt a megfelelő végpontokkal szeretné regisztrálni, használja a következő kódot:

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

Az getActiveDirectorySettings előző kódban szereplő hívás lekéri a végpontokat a metaadatvégpontokból. A következő hívás környezeti változóit tartalmazza:

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

Mintaegység-tesztprojekt

  1. Klónozza az adattárat a következő paranccsal:

    git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybrid
    
  2. Hozzon létre egy Azure-szolgáltatásnevet, és rendeljen hozzá egy szerepkört az előfizetés eléréséhez. A szolgáltatásnév létrehozásával kapcsolatos útmutatásért lásd: Szolgáltatásnév létrehozása Azure PowerShell tanúsítvánnyal.

  3. Kérje le a következő szükséges környezeti változókat:

    • AZURE_TENANT_ID
    • AZURE_CLIENT_ID
    • AZURE_CLIENT_SECRET
    • AZURE_SUBSCRIPTION_ID
    • ARM_ENDPOINT
    • RESOURCE_LOCATION
  4. Állítsa be a következő környezeti változókat a parancssor használatával létrehozott szolgáltatásnévből lekért adatok használatával:

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

    A Windowsban az exportálás helyett használja a készletet.

  5. A függvény használatával getActiveDirectorySettings lekérheti az Azure Resource Manager metaadat-végpontjait.

    // Get Azure Stack Hub cloud endpoints
    final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);
    
  6. A Pom.xml fájlban adja hozzá a következő függőséget az Azure Stack Hub 2019-03-01-hibrid profiljának használatához. Ez a függőség telepíti a profilhoz társított modulokat a számítási, hálózatkezelési, tárolási, Key Vault- és App Services-erőforrás-szolgáltatókhoz:

    <dependency>
      <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId>
      <artifactId>azure</artifactId>
      <version>1.0.0-beta-1</version>
    </dependency>
    
  7. A környezeti változók beállításához megnyitott parancssorban adja meg a következő parancsot:

    mvn clean compile exec:java
    

Példák

Tekintse meg ezt a mintaadattárat az update-to-date (track 2) mintakódhoz. Az 1. mintakód nyomon követéséhez tekintse meg ezt a mintaadattárat . A gyökér README.md általános követelményeket ír le, és minden alkönyvtár tartalmaz egy saját mintát README.md a minta futtatásához.

Lásd itt az Azure Stack-verzióra 2008 vagy -profilra 2019-03-01 vonatkozó mintát, és alább.

Következő lépések

További információ az API-profilokról: