Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Java SDK è stato aggiornato dalla traccia 1 alla traccia 2. È consigliabile eseguire la migrazione al track 2 SDK il prima possibile. Per istruzioni, vedere questa guida alla migrazione.
Java SDK per Azure Stack Hub Resource Manager offre strumenti che consentono di creare e gestire l'infrastruttura. I provider di risorse nell'SDK includono calcolo, rete, archiviazione, servizi app e Azure Key Vault. È possibile trovare il repository di esempi Di Java ibrido in GitHub. Questo articolo illustra come configurare l'ambiente, ottenere le credenziali corrette, acquisire il repository e creare un gruppo di risorse nell'hub di Azure Stack.
L'uso di Java SDK consente un'esperienza di sviluppo cloud ibrida vera. Il passaggio delle dipendenze di versione in POM.xml nel Java SDK abilita lo sviluppo di cloud ibridi, permettendo di passare dalle risorse globali di Azure alle risorse nell'Azure Stack Hub.
Per usare la versione più recente dei servizi, usare il profilo più recente come dipendenza.
Puoi indirizzare la tua applicazione verso una risorsa nel Tack Hub di Azure prendendo la dipendenza esistente com.azure.resourcemanager e modificando la versione da x.y.z a x.y.z-hybrid. I pacchetti ibridi, che forniscono il supporto per l'hub di Azure Stack, usano un -hybrid suffisso alla fine della versione, 1.0.0-hybridad esempio . Questo porterà a una raccolta statica di endpoint associati alla versione.
Per ottenere l'ultima versione del profilo, prendere la dipendenza com.azure.resourcemanager esistente e modificare la versione alla versione più recente. I pacchetti Java del profilo più recenti offrono un'esperienza coerente con Azure. I pacchetti condividono lo stesso ID gruppo di Azure com.azure.resourcemanager. L'ID dell'artefatto e gli spazi dei nomi sono gli stessi di quelli di Azure globale. Ciò consente di convertire l'app di Azure nell'hub di Azure Stack. Per altre informazioni sugli endpoint usati nell'hub di Azure Stack come pari al profilo ibrido, vedere Riepilogo dei profili API.
Il profilo viene specificato nel pom.xml file nel progetto Maven come dipendenza. Il profilo carica automaticamente i moduli se si sceglie la classe corretta dall'elenco a discesa (come si farebbe con .NET).
Configurare l'ambiente di sviluppo
Per preparare l'ambiente per l'esecuzione dell'SDK, è possibile usare un IDE, ad esempio Eclipse o Visual Studio Code, ma è necessario che Git, Java SDK e Apache Maven siano installati. Per informazioni dettagliate sui prerequisiti per la configurazione dell'ambiente di sviluppo, vedere Usare Azure SDK per Java
Installare Git. Le istruzioni ufficiali per installare Git sono disponibili in Introduzione all'installazione di Git.
Installare Java SDK e impostare la
JAVA_HOMEvariabile di ambiente sul percorso dei file binari per Java Development Kit. È possibile trovare le istruzioni per i supporti di installazione scaricabili di OpenJDK. Installare la versione 8 o successiva di Java Developer Kit.Installare Apache Maven. È possibile trovare istruzioni nel progetto Apache Maven. Installare Apache Maven versione 3.0 o successiva.
Profili di versione java e API
Per usare le versioni più recenti di tutti i servizi, usare il profilo più recente come dipendenza.
Per usare il profilo più recente, la dipendenza è com.microsoft.azure.
Per usare i servizi supportati più recenti disponibili nell'hub di Azure Stack, usare il profilo di com.microsoft.azure.profile_2019_03_01_hybrid .
- Il profilo viene specificato nel file Pom.xml come dipendenza, che carica automaticamente i moduli se si sceglie la classe corretta dall'elenco a discesa (come si farebbe con .NET).
Le dipendenze vengono visualizzate come segue:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>Per usare versioni API specifiche per un tipo di risorsa in un provider di risorse specifico, usare le versioni API specifiche definite tramite IntelliSense.
È possibile combinare tutte le opzioni nella stessa app.
Installare Azure Java SDK
Per installare Java SDK, seguire questa procedura:
Seguire le istruzioni ufficiali per installare Git. Vedere Introduzione all'installazione di Git.
Seguire le istruzioni per installare Java SDK e Maven. La versione corretta è la versione 8 del Java Developer Kit. La versione corretta di Apache Maven è 3.0 o versione successiva. Per completare la guida introduttiva, la variabile di ambiente
JAVA_HOMEdeve essere impostata sul percorso di installazione del Java Development Kit. Per altre informazioni, vedere Creare la prima funzione con Java e Maven.Per installare i pacchetti di dipendenza corretti, aprire il file Pom.xml nell'app Java. Aggiungere una dipendenza, come illustrato nel codice seguente:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>Il set di pacchetti che devono essere installati dipende dalla versione del profilo che si vuole usare. I nomi dei pacchetti per le versioni del profilo sono:
- com.microsoft.azure.profile_2019_03_01_hybrid
-
com.microsoft.azure
- più recente
Profili
Per i profili contenenti date, per usare un profilo o una versione SDK diversa, sostituire la data in com.microsoft.azure.profile<date>_hybrid. Ad esempio, per la versione 2008, il profilo è 2019_03_01e la stringa diventa com.microsoft.azure.profile_2019_03_01_hybrid. Si noti che a volte il team SDK modifica il nome dei pacchetti, quindi la semplice sostituzione della data di una stringa con una data diversa potrebbe non funzionare. Vedere la tabella seguente per l'associazione di profili e versioni di Azure Stack.
| Versione di Azure Stack | Profilo |
|---|---|
| 2311 | 01/09/2020 |
| 2301 | 01/09/2020 |
| 2206 | 01/09/2020 |
| 2108 | 01/09/2020 |
| 2102 | 01/09/2020 |
| 2008 | 01/03/2019 |
Per altre informazioni sull'hub di Azure Stack e sui profili API, vedere Riepilogo dei profili API.
Abbonamento
Se non si ha già una sottoscrizione, creare una sottoscrizione e salvare l'ID sottoscrizione da usare in un secondo momento. Per informazioni su come creare una sottoscrizione, vedere questo documento.
Service Principal
Bisogna creare un principale di servizio e salvare da qualche parte le informazioni sull'ambiente associate. È consigliabile usare un'entità servizio con il ruolo owner, ma a seconda del contesto può essere sufficiente il ruolo contributor. Per i valori richiesti, vedere il README nel repository di esempio. È possibile leggere questi valori in qualsiasi formato supportato dal linguaggio SDK, ad esempio da un file JSON (usato dagli esempi). A seconda dell'esempio in esecuzione, non tutti questi valori possono essere usati. Consultare il repository di esempio per il codice di esempio aggiornato o ulteriori informazioni.
ID del locatario
Per trovare la directory o l'ID tenant per l'hub di Azure Stack, seguire le istruzioni riportate in questo articolo.
Registrare i fornitori di risorse
Registrare i provider di risorse necessari seguendo questo documento. Questi provider di risorse saranno necessari a seconda degli esempi da eseguire. Ad esempio, se si vuole eseguire un esempio di macchina virtuale, è necessaria la registrazione del Microsoft.Compute provider di risorse.
Endpoint di Azure Stack Resource Manager
Azure Resource Manager (ARM) è un framework di gestione che consente agli amministratori di distribuire, gestire e monitorare le risorse di Azure. Azure Resource Manager può gestire queste attività come gruppo, anziché singolarmente, in una singola operazione. È possibile ottenere le informazioni sui metadati dall'endpoint di Resource Manager. L'endpoint restituisce un file JSON con le informazioni necessarie per eseguire il codice.
- Il ResourceManagerEndpointUrl in il Azure Stack Development Kit (ASDK) è:
https://management.local.azurestack.external/. -
ResourceManagerEndpointUrl nei sistemi integrati è :
https://management.region.<fqdn>/, dove<fqdn>è il nome di dominio completo. - Per recuperare i metadati necessari:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Per le versioni api disponibili, vedere Specifiche dell'API REST di Azure. Ad esempio, nella versione2020-09-01del profilo, è possibile modificare ilapi-versionin2019-10-01per il provider di risorsemicrosoft.resources.
JSON di esempio:
{
"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"]
}
}
Considerare attendibile il certificato radice della CA dell'hub di Azure Stack
Se si usa Azure Stack Development Kit (ASDK), è necessario considerare attendibile il certificato radice della CA nel computer remoto. Non è necessario considerare attendibile il certificato radice della CA con i sistemi integrati dell'hub di Azure Stack.
Finestre
Esportare il certificato autofirmato dell'hub di Azure Stack nel desktop.
In un prompt dei comandi, modifica la directory in
%JAVA_HOME%\bin.Eseguire il comando seguente:
.\keytool.exe -importcert -noprompt -file <location of the exported certificate here> -alias root -keystore %JAVA_HOME%\lib\security\cacerts -trustcacerts -storepass changeit
Profili API esistenti
com.microsoft.azure.profile_2019_03_01_hybrid: profilo più recente compilato per l'hub di Azure Stack. Usa questo profilo per i servizi per garantirne la massima compatibilità con Azure Stack Hub, purché sia sulla versione 1904 o successiva.
com.microsoft.azure.profile_2018_03_01_hybrid: profilo compilato per l'hub di Azure Stack. Usare questo profilo per i servizi compatibili con l'hub di Azure Stack versione 1808 o successiva.
com.microsoft.azure: profilo costituito dalle versioni più recenti di tutti i servizi. Usare le versioni più recenti di tutti i servizi.
Per altre informazioni sull'hub di Azure Stack e sui profili API, vedere Riepilogo dei profili API.
Utilizzo del profilo API Java SDK di Azure
Il codice seguente autentica l'entità servizio nell'hub di Azure Stack. Crea un token usando l'ID tenant e la base di autenticazione, specifica dell'hub di Azure Stack:
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());
Questo codice consente di usare le dipendenze del profilo API per distribuire correttamente l'app nell'hub di Azure Stack.
Definire le funzioni di impostazione dell'ambiente dell'hub di Azure Stack
Per registrare il cloud dell'hub di Azure Stack con gli endpoint corretti, usare il codice seguente:
// 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('.')));
}
});
La getActiveDirectorySettings chiamata nel codice precedente recupera gli endpoint dai metadati. Indica le variabili di ambiente della chiamata effettuata:
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;
}
Progetto di unit test di esempio
Clonare il repository usando il comando seguente:
git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybridCreare un principale del servizio Azure e assegnare un ruolo per accedere alla sottoscrizione. Per istruzioni sulla creazione di un'entità servizio, vedere Usare Azure PowerShell per creare un'entità servizio con un certificato.
Recuperare le variabili di ambiente necessarie seguenti:
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_SUBSCRIPTION_IDARM_ENDPOINTRESOURCE_LOCATION
Impostare le variabili di ambiente seguenti usando le informazioni recuperate dall'entità servizio creata tramite il prompt dei comandi:
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}
In Windows, si usa set invece di export.
Usare la
getActiveDirectorySettingsfunzione per recuperare gli endpoint dei metadati di Azure Resource Manager.// Get Azure Stack Hub cloud endpoints final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);Nel file Pom.xml, aggiungere la seguente dipendenza per usare il profilo ibrido-2019-03-01 per Azure Stack Hub. Questa dipendenza installa i moduli associati a questo profilo per i provider di risorse Calcolo, Rete, Archiviazione, Key Vault e Servizi app:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>Nel prompt dei comandi aperto per impostare le variabili di ambiente immettere il comando seguente:
mvn clean compile exec:java
Esempi
Consulta questo repository di esempio per il codice di esempio aggiornato (track 2). Consultare questo repository di esempio per il codice di esempio per il track 1. La radice README.md descrive i requisiti generali, e ogni sottodirectory contiene un esempio specifico con il proprio README.md su come eseguire quell'esempio.
Vedere qui per l'esempio applicabile per la versione 2008 o il profilo 2019-03-01 di Azure Stack e di seguito.
Passaggi successivi
Altre informazioni sui profili API: