Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Das Java SDK wurde von Track 1 auf Track 2 aktualisiert. Es wird empfohlen, so bald wie möglich zum Track 2 SDK zu migrieren. Anweisungen finden Sie in diesem Migrationshandbuch.
Das Java SDK für den Azure Stack Hub Resource Manager bietet Tools, mit denen Sie Ihre Infrastruktur erstellen und verwalten können. Ressourcenanbieter im SDK umfassen Compute, Netzwerk, Speicher, App-Dienste und Azure Key Vault. Sie finden das Repository für Hybrid-Java-Beispiele auf GitHub. In diesem Artikel können Sie Ihre Umgebung einrichten, die richtigen Anmeldeinformationen abrufen, das Repository abrufen und eine Ressourcengruppe in Azure Stack Hub erstellen.
Die Verwendung des Java SDK ermöglicht eine echte Hybrid-Cloud-Entwicklerumgebung. Das Wechseln der Versionsabhängigkeiten im POM.xml
Java SDK ermöglicht die Hybrid-Cloudentwicklung, indem Sie zwischen globalen Azure-Ressourcen zu Ressourcen im Azure Stack Hub wechseln.
Um die neueste Version der Dienste zu verwenden, verwenden Sie das neueste Profil als Abhängigkeit.
Sie können Ihre App auf Ressourcen in Azure tack Hub ausrichten, indem Sie Ihre vorhandene com.azure.resourcemanager-Abhängigkeit übernehmen und die Version von "in x.y.z
" x.y.z-hybrid
ändern. Die Hybridpakete, die Unterstützung für Azure Stack Hub bieten, verwenden ein -hybrid
Suffix am Ende der Version, 1.0.0-hybrid
z. B. . . Dies verweist auf eine statische Auflistung von Endpunkten, die der Version zugeordnet sind.
Um das neueste Profil zu erhalten, nehmen Sie Ihre vorhandene com.azure.resourcemanager-Abhängigkeit ein, und ändern Sie die Version auf die neueste Version. Die neuesten Profil-Java-Pakete bieten eine konsistente Erfahrung mit Azure. Die Pakete verwenden dieselbe Gruppen-ID wie Azure com.azure.resourcemanager. Die Artefakt-ID und Namespaces sind auch die gleichen wie globale Azure. Dies hilft beim Portieren Ihrer Azure-App zu Azure Stack Hub. Weitere Informationen zu den endpunkten, die im Azure Stack Hub als Analyse des Hybridprofils verwendet werden, finden Sie in der Zusammenfassung der API-Profile.
Das Profil wird in der pom.xml
Datei im Maven-Projekt als Abhängigkeit angegeben. Das Profil lädt Module automatisch, wenn Sie die richtige Klasse aus der Dropdownliste (wie bei .NET) auswählen.
Einrichten Ihrer Entwicklungsumgebung
Um Ihre Umgebung für die Ausführung des SDK vorzubereiten, können Sie eine IDE wie Eclipse oder Visual Studio Code verwenden, aber Sie müssen Git, das Java SDK und Apache Maven installiert haben. Details zu den Voraussetzungen für die Einrichtung Ihrer Entwicklungsumgebung finden Sie unter Verwendung des Azure SDK für Java
Installieren Sie Git. Sie finden die offiziellen Anweisungen zum Installieren von Git bei Den ersten Schritten – Installieren von Git.
Installieren Sie das Java SDK, und legen Sie die
JAVA_HOME
Umgebungsvariable auf den Speicherort der Binärdateien für Java Development Kit fest. Sie finden die herunterladbaren Installationsmedienanweisungen für das OpenJDK. Installieren Sie Version 8 oder höher des Java Developer Kit.Installieren Sie Apache Maven. Anweisungen finden Sie im Apache Maven Project. Installieren Sie Apache Maven ist 3.0 oder höher.
Java- und API-Versionsprofile
Um die neuesten Versionen aller Dienste zu verwenden, verwenden Sie das neueste Profil als Abhängigkeit.
Um das neueste Profil zu verwenden, lautet die Abhängigkeit "com.microsoft.azure".
Um die neuesten unterstützten Dienste zu verwenden, die in Azure Stack Hub verfügbar sind, verwenden Sie das com.microsoft.azure.profile_2019_03_01_hybrid Profil.
- Das Profil wird in der Pom.xml Datei als Abhängigkeit angegeben, wodurch Module automatisch geladen werden, wenn Sie die richtige Klasse aus der Dropdownliste auswählen (wie bei .NET).
Abhängigkeiten werden wie folgt angezeigt:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>
Um bestimmte API-Versionen für einen Ressourcentyp in einem bestimmten Ressourcenanbieter zu verwenden, verwenden Sie die spezifischen API-Versionen, die über IntelliSense definiert sind.
Sie können alle Optionen in derselben App kombinieren.
Installieren des Azure Java SDK
Führen Sie die folgenden Schritte aus, um das Java SDK zu installieren:
Befolgen Sie die offiziellen Anweisungen, um Git zu installieren. Weitere Informationen finden Sie unter "Erste Schritte" – Installieren von Git.
Befolgen Sie die Anweisungen zum Installieren des Java SDK und Maven. Die richtige Version ist Version 8 des Java Developer Kit. Die richtige Version von Apache Maven ist 3.0 oder höher. Um die Schnellstartanleitung abzuschließen, muss die
JAVA_HOME
Umgebungsvariable auf den Installationsspeicherort des Java Development Kit festgelegt werden. Weitere Informationen finden Sie unter Erstellen Ihrer ersten Funktion mit Java und Maven.Um die richtigen Abhängigkeitspakete zu installieren, öffnen Sie die Pom.xml Datei in Ihrer Java-App. Fügen Sie eine Abhängigkeit hinzu, wie im folgenden Code gezeigt:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>
Der Satz von Paketen, die installiert werden müssen, hängt von der Profilversion ab, die Sie verwenden möchten. Die Paketnamen für die Profilversionen sind:
- com.microsoft.azure.profile_2019_03_01_hybrid
-
com.microsoft.azure
- neueste
Profile
Wenn Profile, die Datumsangaben enthalten, ein anderes SDK-Profil oder eine andere Version verwenden möchten, ersetzen Sie das Datum in com.microsoft.azure.profile<date>_hybrid
. For example, for the 2008 version, the profile is 2019_03_01
, and the string is com.microsoft.azure.profile_2019_03_01_hybrid
. Beachten Sie, dass das SDK-Team manchmal den Namen der Pakete ändert, sodass das Ersetzen des Datums einer Zeichenfolge durch ein anderes Datum möglicherweise nicht funktioniert. In der folgenden Tabelle finden Sie die Zuordnung von Profilen und Azure Stack-Versionen.
Azure Stack-Version | 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 |
Weitere Informationen zu Azure Stack Hub- und API-Profilen finden Sie in der Zusammenfassung der API-Profile.
Abonnement
Wenn Sie noch nicht über ein Abonnement verfügen, erstellen Sie ein Abonnement, und speichern Sie die Abonnement-ID, die später verwendet werden soll. Informationen zum Erstellen eines Abonnements finden Sie in diesem Dokument.
Service Principal
Ein Dienstprinzipal und die zugehörigen Umgebungsinformationen sollten an einer beliebigen Stelle erstellt und gespeichert werden. Dienstprinzipal mit owner
Rolle wird empfohlen, aber je nach Beispiel kann eine contributor
Rolle ausreichen. Weitere Informationen finden Sie in der INFODATEI im Beispiel-Repository für die erforderlichen Werte. Sie können diese Werte in jedem Format lesen, das von der SDK-Sprache unterstützt wird, z. B. aus einer JSON-Datei (die unsere Beispiele verwenden). Je nachdem, wie das Beispiel ausgeführt wird, können nicht alle diese Werte verwendet werden. Weitere Informationen finden Sie im Beispiel-Repository für aktualisierte Beispielcode oder weitere Informationen.
Mieter-ID
Um das Verzeichnis oder die Mandanten-ID für Ihren Azure Stack Hub zu finden, befolgen Sie die Anweisungen in diesem Artikel.
Registrieren von Ressourcenanbietern
Registrieren Sie die erforderlichen Ressourcenanbieter, indem Sie diesem Dokument folgen. Diese Ressourcenanbieter sind abhängig von den Beispielen erforderlich, die Sie ausführen möchten. Wenn Sie beispielsweise ein VM-Beispiel ausführen möchten, ist die Registrierung des Microsoft.Compute
Ressourcenanbieters erforderlich.
Azure Stack-Ressourcen-Manager-Endpunkt
Azure Resource Manager (ARM) ist ein Verwaltungsframework, mit dem Administratoren Azure-Ressourcen bereitstellen, verwalten und überwachen können. Azure Resource Manager kann diese Aufgaben als Gruppe und nicht einzeln in einem einzigen Vorgang verarbeiten. Sie können die Metadateninformationen vom Ressourcen-Manager-Endpunkt abrufen. Der Endpunkt gibt eine JSON-Datei mit den zum Ausführen des Codes erforderlichen Informationen zurück.
- Der ResourceManagerEndpointUrl im Azure Stack Development Kit (ASDK) lautet:
https://management.local.azurestack.external/
. - Der ResourceManagerEndpointUrl in integrierten Systemen lautet:
https://management.region.<fqdn>/
, wo<fqdn>
befindet sich Ihr vollqualifizierter Domänenname. - So rufen Sie die erforderlichen Metadaten ab:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Verfügbare API-Versionen finden Sie unter Azure Rest API-Spezifikationen. In der2020-09-01
Profilversion können Sie z. B. die Option für denapi-version
2019-10-01
Ressourcenanbietermicrosoft.resources
ändern.
JSON-Beispiel:
{
"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"]
}
}
Vertrauen Sie dem Stammzertifikat der Azure Stack Hub-Zertifizierungsstelle.
Wenn Sie das Azure Stack Development Kit (ASDK) verwenden, müssen Sie dem Stammzertifikat der Zertifizierungsstelle auf Ihrem Remotecomputer vertrauen. Sie müssen dem Stammzertifikat der Zertifizierungsstelle nicht vertrauen, indem Sie integrierte Azure Stack Hub-Systeme verwenden.
Fenster
Exportieren Sie das selbstsignierte Azure Stack Hub-Zertifikat auf Ihren Desktop.
Ändern Sie in einer Eingabeaufforderung das Verzeichnis in
%JAVA_HOME%\bin
.Führen Sie den folgenden Befehl aus:
.\keytool.exe -importcert -noprompt -file <location of the exported certificate here> -alias root -keystore %JAVA_HOME%\lib\security\cacerts -trustcacerts -storepass changeit
Vorhandene API-Profile
com.microsoft.azure.profile_2019_03_01_hybrid: Neuestes Profil, das für Azure Stack Hub erstellt wurde. Verwenden Sie dieses Profil, damit Dienste mit Azure Stack Hub am besten kompatibel sind, solange Sie 1904 oder höher sind.
com.microsoft.azure.profile_2018_03_01_hybrid: Profil, das für Azure Stack Hub erstellt wurde. Verwenden Sie dieses Profil, damit Dienste mit Azure Stack Hub-Versionen 1808 oder höher kompatibel sind.
com.microsoft.azure: Profil, das aus den neuesten Versionen aller Dienste besteht. Verwenden Sie die neuesten Versionen aller Dienste.
Weitere Informationen zu Azure Stack Hub- und API-Profilen finden Sie in der Zusammenfassung der API-Profile.
Azure Java SDK-API-Profilverwendung
Der folgende Code authentifiziert den Dienstprinzipal im Azure Stack Hub. Es erstellt ein Token mit der Mandanten-ID und der Authentifizierungsbasis, die für Azure Stack Hub spezifisch ist:
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());
Mit diesem Code können Sie die API-Profilabhängigkeiten verwenden, um Ihre App erfolgreich auf Azure Stack Hub bereitzustellen.
Definieren von Einstellungsfunktionen für Azure Stack Hub-Umgebung
Verwenden Sie den folgenden Code, um die Azure Stack Hub-Cloud mit den richtigen Endpunkten zu registrieren:
// 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('.')));
}
});
Der getActiveDirectorySettings
Aufruf im vorherigen Code ruft die Endpunkte aus den Metadatenendpunkten ab. Sie gibt die Umgebungsvariablen aus dem ausgeführten Aufruf an:
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;
}
Beispiel-Komponententestprojekt
Klonen Sie das Repository mit dem folgenden Befehl:
git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybrid
Erstellen Sie einen Azure-Dienstprinzipal, und weisen Sie eine Rolle für den Zugriff auf das Abonnement zu. Anweisungen zum Erstellen eines Dienstprinzipals finden Sie unter Verwenden von Azure PowerShell zum Erstellen eines Dienstprinzipals mit einem Zertifikat.
Rufen Sie die folgenden erforderlichen Umgebungsvariablen ab:
AZURE_TENANT_ID
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_SUBSCRIPTION_ID
ARM_ENDPOINT
RESOURCE_LOCATION
Legen Sie die folgenden Umgebungsvariablen mithilfe der Informationen fest, die aus dem Dienstprinzipal abgerufen wurden, den Sie mithilfe der Eingabeaufforderung erstellt haben:
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}
Verwenden Sie in Windows "Set " anstelle des Exports.
Verwenden Sie die
getActiveDirectorySettings
Funktion, um die Azure Resource Manager-Metadatenendpunkte abzurufen.// Get Azure Stack Hub cloud endpoints final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);
Fügen Sie in der dateiPom.xml die folgende Abhängigkeit hinzu, um das Hybridprofil 2019-03-01 für Azure Stack Hub zu verwenden. Diese Abhängigkeit installiert die Module, die diesem Profil zugeordnet sind, für die Ressourcenanbieter Compute, Networking, Storage, Key Vault und App Services:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>
Geben Sie in der Eingabeaufforderung, die geöffnet war, um die Umgebungsvariablen festzulegen, den folgenden Befehl ein:
mvn clean compile exec:java
Beispiele
In diesem Beispiel-Repository finden Sie Beispielcode für update-to-date (Track 2). In diesem Beispiel-Repository finden Sie Beispielcode zum Nachverfolgen von 1. Der Stamm README.md
beschreibt allgemeine Anforderungen, und jedes Unterverzeichnis enthält ein bestimmtes Beispiel mit eigenen README.md
Informationen zum Ausführen dieses Beispiels.
Hier finden Sie das Beispiel, das für Azure Stack-Version 2008
oder -Profil 2019-03-01
und unten gilt.
Nächste Schritte
Weitere Informationen zu API-Profilen: