Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Le Kit de développement logiciel (SDK) Java a été mis à jour de la piste 1 à la piste 2. Nous vous recommandons de migrer vers le Kit de développement logiciel (SDK) track 2 dès que possible. Pour obtenir des instructions, consultez ce guide de migration.
Le Kit de développement logiciel (SDK) Java pour Azure Stack Hub Resource Manager fournit des outils pour vous aider à créer et à gérer votre infrastructure. Les fournisseurs de ressources du Kit de développement logiciel (SDK) incluent le calcul, la mise en réseau, le stockage, les services d’application et Azure Key Vault. Vous trouverez le dépôt d’exemples Java hybrides sur GitHub. Cet article vous aidera à configurer votre environnement, à obtenir les informations d’identification appropriées, à récupérer le référentiel et à créer un groupe de ressources dans Azure Stack Hub.
L’utilisation du Kit de développement logiciel (SDK) Java permet une expérience de développement cloud hybride. Le basculement des dépendances de version dans le POM.xml Kit de développement logiciel (SDK) Java permet le développement cloud hybride en vous aidant à basculer entre les ressources Azure globales vers des ressources dans Azure Stack Hub.
Pour utiliser la dernière version des services, utilisez le profil le plus récent comme dépendance.
Vous pouvez cibler votre application vers la ressource dans Azure tack Hub en prenant votre dépendance com.azure.resourcemanager existante et en modifiant la version de x.y.z .x.y.z-hybrid Les packages hybrides, qui prennent en charge Azure Stack Hub, utilisent un -hybrid suffixe à la fin de la version, par exemple 1.0.0-hybrid. Cela pointe vers une collection statique de points de terminaison associés à la version.
Pour obtenir le dernier profil, prenez votre dépendance com.azure.resourcemanager existante et remplacez la version par la dernière version. Les derniers packages Java de profil offrent une expérience cohérente avec Azure. Les packages partagent le même ID de groupe qu’Azure com.azure.resourcemanager. L’ID d’artefact et les espaces de noms sont également identiques à Azure global. Cela permet de porter votre application Azure vers Azure Stack Hub. Pour en savoir plus sur les points de terminaison utilisés dans Azure Stack Hub comme par rapport au profil hybride, consultez le résumé des profils d’API.
Le profil est spécifié dans le pom.xml fichier du projet Maven en tant que dépendance. Le profil charge automatiquement les modules si vous choisissez la classe appropriée dans la liste déroulante (comme vous le feriez avec .NET).
Configurer votre environnement de développement
Pour préparer votre environnement à l’exécution du Kit de développement logiciel (SDK), vous pouvez utiliser un IDE tel qu’Eclipse ou Visual Studio Code, mais vous devez installer Git, le Kit de développement logiciel (SDK) Java et Apache Maven. Vous trouverez des détails sur les conditions préalables à la configuration de votre environnement de développement à l’aide du Kit de développement logiciel (SDK) Azure pour Java
Installez Git. Vous trouverez les instructions officielles pour installer Git au démarrage - Installation de Git.
Installez le Kit de développement logiciel (SDK) Java et définissez votre
JAVA_HOMEvariable d’environnement sur l’emplacement des fichiers binaires pour le Kit de développement Java. Vous trouverez les instructions de support d’installation téléchargeables pour OpenJDK. Installez la version 8 ou ultérieure du Kit de développement Java.Installez Apache Maven. Vous trouverez des instructions sur le projet Apache Maven. L’installation d’Apache Maven est 3.0 ou ultérieure.
Profils de version java et d’API
Pour utiliser les dernières versions de tous les services, utilisez le profil le plus récent comme dépendance.
Pour utiliser le dernier profil, la dépendance est com.microsoft.azure.
Pour utiliser les derniers services pris en charge disponibles dans Azure Stack Hub, utilisez le profil com.microsoft.azure.profile_2019_03_01_hybrid .
- Le profil est spécifié dans le fichier Pom.xml en tant que dépendance, qui charge automatiquement les modules si vous choisissez la classe appropriée dans la liste déroulante (comme vous le feriez avec .NET).
Les dépendances apparaissent comme suit :
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>Pour utiliser des versions d’API spécifiques pour un type de ressource dans un fournisseur de ressources spécifique, utilisez les versions d’API spécifiques définies via IntelliSense.
Vous pouvez combiner toutes les options de la même application.
Installer le Kit de développement logiciel (SDK) Java Azure
Procédez comme suit pour installer le Kit de développement logiciel (SDK) Java :
Suivez les instructions officielles pour installer Git. Consultez Bien démarrer : installation de Git.
Suivez les instructions pour installer le Kit de développement logiciel (SDK) Java et Maven. La version correcte est la version 8 du Kit de développement Java. La version correcte d’Apache Maven est 3.0 ou ultérieure. Pour suivre le guide de démarrage rapide, la
JAVA_HOMEvariable d’environnement doit être définie sur l’emplacement d’installation du Kit de développement Java. Pour plus d’informations, consultez Créer votre première fonction avec Java et Maven.Pour installer les packages de dépendances appropriés, ouvrez le fichier Pom.xml dans votre application Java. Ajoutez une dépendance, comme indiqué dans le code suivant :
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>L’ensemble de packages qui doivent être installés dépend de la version de profil que vous souhaitez utiliser. Les noms des packages pour les versions de profil sont les suivants :
- com.microsoft.azure.profile_2019_03_01_hybrid
-
com.microsoft.azure
- dernier
Profils
Pour les profils contenant des dates, pour utiliser un autre profil ou version du SDK, remplacez la date dans com.microsoft.azure.profile<date>_hybrid. Par exemple, pour la version 2008, le profil est 2019_03_01et la chaîne devient com.microsoft.azure.profile_2019_03_01_hybrid. Notez que parfois l’équipe du Kit de développement logiciel (SDK) modifie le nom des packages. Par conséquent, il se peut que le remplacement de la date d’une chaîne par une date différente ne fonctionne pas. Consultez le tableau suivant pour l’association de profils et de versions d’Azure Stack.
| Version d’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 |
Pour plus d’informations sur les profils Azure Stack Hub et API, consultez le résumé des profils d’API.
Abonnement
Si vous n’avez pas encore d’abonnement, créez un abonnement et enregistrez l’ID d’abonnement à utiliser ultérieurement. Pour plus d’informations sur la création d’un abonnement, consultez ce document.
Service Principal
Un principal de service et ses informations d’environnement associées doivent être créées et enregistrées quelque part. Le principal de service avec owner un rôle est recommandé, mais en fonction de l’exemple, un contributor rôle peut suffire. Reportez-vous au fichier README dans l’exemple de référentiel pour connaître les valeurs requises. Vous pouvez lire ces valeurs dans n’importe quel format pris en charge par le langage sdk, par exemple à partir d’un fichier JSON (que nos exemples utilisent). Selon l’exemple en cours d’exécution, toutes ces valeurs ne peuvent pas être utilisées. Consultez l’exemple de référentiel pour obtenir des informations supplémentaires ou des exemples de code mis à jour.
ID du locataire
Pour rechercher l’ID d’annuaire ou de locataire de votre Azure Stack Hub, suivez les instructions de cet article.
Inscrire des fournisseurs de ressources
Inscrivez les fournisseurs de ressources requis en suivant ce document. Ces fournisseurs de ressources sont requis en fonction des exemples que vous souhaitez exécuter. Par exemple, si vous souhaitez exécuter un exemple de machine virtuelle, l’inscription du Microsoft.Compute fournisseur de ressources est requise.
Point de terminaison Azure Stack Resource Manager
Azure Resource Manager (ARM) est un framework de gestion qui permet aux administrateurs de déployer, gérer et surveiller des ressources Azure. Azure Resource Manager peut gérer ces tâches en tant que groupe, plutôt que individuellement, dans une seule opération. Vous pouvez obtenir les informations de métadonnées à partir du point de terminaison Resource Manager. Le point de terminaison retourne un fichier JSON avec les informations requises pour exécuter votre code.
-
ResourceManagerEndpointUrl dans le Kit de développement Azure Stack (ASDK) est :
https://management.local.azurestack.external/. -
ResourceManagerEndpointUrl dans les systèmes intégrés est :
https://management.region.<fqdn>/, où<fqdn>est votre nom de domaine complet. - Pour récupérer les métadonnées requises :
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Pour connaître les versions d’API disponibles, consultez les spécifications de l’API rest Azure. Par exemple, dans la2020-09-01version du profil, vous pouvez modifier laapi-versionvaleur du2019-10-01fournisseur demicrosoft.resourcesressources.
Exemple 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"]
}
}
Approuver le certificat racine de l’autorité de certification Azure Stack Hub
Si vous utilisez le Kit de développement Azure Stack (ASDK), vous devez approuver le certificat racine de l’autorité de certification sur votre ordinateur distant. Vous n’avez pas besoin d’approuver le certificat racine de l’autorité de certification avec les systèmes intégrés Azure Stack Hub.
Fenêtres
Exportez le certificat auto-signé Azure Stack Hub vers votre bureau.
Dans une invite de commandes, remplacez le répertoire
%JAVA_HOME%\binpar .Exécutez la commande suivante:
.\keytool.exe -importcert -noprompt -file <location of the exported certificate here> -alias root -keystore %JAVA_HOME%\lib\security\cacerts -trustcacerts -storepass changeit
Profils d’API existants
com.microsoft.azure.profile_2019_03_01_hybrid : profil le plus récent créé pour Azure Stack Hub. Utilisez ce profil pour que les services soient les plus compatibles avec Azure Stack Hub, tant que vous êtes sur 1904 ou version ultérieure.
com.microsoft.azure.profile_2018_03_01_hybrid : profil créé pour Azure Stack Hub. Utilisez ce profil pour que les services soient compatibles avec Les versions 1808 ou ultérieures d’Azure Stack Hub.
com.microsoft.azure : profil constitué des dernières versions de tous les services. Utilisez les dernières versions de tous les services.
Pour plus d’informations sur les profils Azure Stack Hub et API, consultez le résumé des profils d’API.
Utilisation du profil d’API du KIT SDK Java Azure
Le code suivant authentifie le principal de service sur Azure Stack Hub. Il crée un jeton à l’aide de l’ID de locataire et de la base d’authentification, qui est spécifique à 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());
Ce code vous permet d’utiliser les dépendances de profil d’API pour déployer votre application avec succès sur Azure Stack Hub.
Définir des fonctions de paramètre d’environnement Azure Stack Hub
Pour inscrire le cloud Azure Stack Hub avec les points de terminaison appropriés, utilisez le code suivant :
// 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('.')));
}
});
L’appel getActiveDirectorySettings dans le code précédent récupère les points de terminaison des points de terminaison de métadonnées. Il indique les variables d’environnement de l’appel effectué :
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;
}
Exemple de projet de test unitaire
Clonez le référentiel à l’aide de la commande suivante :
git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybridCréez un principal de service Azure et attribuez un rôle pour accéder à l’abonnement. Pour obtenir des instructions sur la création d’un principal de service, consultez Utiliser Azure PowerShell pour créer un principal de service avec un certificat.
Récupérez les variables d’environnement requises suivantes :
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_SUBSCRIPTION_IDARM_ENDPOINTRESOURCE_LOCATION
Définissez les variables d’environnement suivantes à l’aide des informations récupérées à partir du principal de service que vous avez créé à l’aide de l’invite de commandes :
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}
Dans Windows, utilisez défini au lieu d’exporter.
Utilisez la
getActiveDirectorySettingsfonction pour récupérer les points de terminaison de métadonnées Azure Resource Manager.// Get Azure Stack Hub cloud endpoints final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);Dans le fichier Pom.xml , ajoutez la dépendance suivante pour utiliser le profil hybride 2019-03-01-hybrid pour Azure Stack Hub. Cette dépendance installe les modules associés à ce profil pour les fournisseurs de ressources Compute, Networking, Storage, Key Vault et App Services :
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>Dans l’invite de commandes ouverte pour définir les variables d’environnement, entrez la commande suivante :
mvn clean compile exec:java
Échantillons
Consultez cet exemple de référentiel pour obtenir l’exemple de code update-to-date (track 2). Consultez cet exemple de référentiel pour suivre 1 exemple de code. La racine README.md décrit les exigences générales, et chaque sous-répertoire contient un exemple spécifique avec sa propre README.md façon d’exécuter cet exemple.
Consultez cet exemple applicable à la version 2008 ou au profil 2019-03-01 Azure Stack et ci-dessous.
Étapes suivantes
En savoir plus sur les profils d’API :