Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
O Java SDK foi atualizado da faixa 1 para a faixa 2. Recomendamos migrar para o SDK da faixa 2 o mais rápido possível. Para obter instruções, consulte este guia de migração.
O Java SDK para o Azure Stack Hub Resource Manager fornece ferramentas para ajudá-lo a criar e gerenciar sua infraestrutura. Os provedores de recursos no SDK incluem computação, rede, armazenamento, serviços de aplicativo e Azure Key Vault. Você pode encontrar o repositório Hybrid Java Samples no GitHub. Este artigo irá ajudá-lo a configurar seu ambiente, obter as credenciais certas, pegar o repositório e criar um grupo de recursos no Azure Stack Hub.
O uso do Java SDK permite uma verdadeira experiência de desenvolvedor de nuvem híbrida. Alterar as dependências de versão no SDK Java permite o desenvolvimento de nuvem híbrida, ajudando você a alternar entre recursos globais do Azure e recursos no Azure Stack Hub.
Para utilizar a versão mais atualizada dos serviços, use o perfil mais recente como dependência.
Você pode direcionar seu aplicativo para o recurso no Azure tack Hub usando sua dependência com.azure.resourcemanager existente e alterando a versão de x.y.z para x.y.z-hybrid. Os pacotes híbridos, que fornecem suporte para o Azure Stack Hub, usam um -hybrid sufixo no final da versão, por exemplo, 1.0.0-hybrid. Isto irá apontar para uma coleção estática de endpoints associados à versão.
Para obter o perfil mais recente, pegue sua dependência com.azure.resourcemanager existente e altere a versão para a mais recente. Os pacotes Java de perfil mais recentes fornecem uma experiência consistente com o Azure. Os pacotes compartilham a mesma ID de grupo do Azure com.azure.resourcemanager. O ID do artefato e os namespaces também são iguais aos do Azure global. Isso ajuda na portabilidade do seu aplicativo do Azure para o Azure Stack Hub. Para saber mais sobre os pontos de extremidade usados no Azure Stack Hub como par do perfil híbrido, consulte o Resumo dos perfis de API.
O perfil é especificado no pom.xml arquivo no projeto Maven como uma dependência. O perfil carrega módulos automaticamente se você escolher a classe certa na lista suspensa (como faria com o .NET).
Configurar seu ambiente de desenvolvimento
Para preparar seu ambiente para executar o SDK, você pode usar um IDE como o Eclipse ou o Visual Studio Code, mas precisará ter o Git, o Java SDK e o Apache Maven instalados. Você pode encontrar detalhes sobre os pré-requisitos para configurar seu ambiente de desenvolvimento em Usar o SDK do Azure para Java
Instale o Git. Você pode encontrar as instruções oficiais para instalar o Git em Introdução - Instalação do Git.
Instale o Java SDK e defina sua
JAVA_HOMEvariável de ambiente para o local dos binários do Java Development Kit. Você pode encontrar as instruções de mídia de instalação para download para o OpenJDK. Instale a versão 8 ou superior do Java Developer Kit.Instale o Apache Maven. Você pode encontrar instruções no Apache Maven Project. Instale o Apache Maven versão 3.0 ou superior.
Perfis de versão Java e API
Para usar as versões mais recentes de todos os serviços, use o perfil mais recente como dependência.
Para usar o perfil mais recente, a dependência é com.microsoft.azure.
Para usar os serviços com suporte mais recentes disponíveis no Azure Stack Hub, use o perfil com.microsoft.azure.profile_2019_03_01_hybrid .
- O perfil está especificado no arquivo Pom.xml como uma dependência, que carrega módulos automaticamente se escolheres a classe certa na lista suspensa (como farias com o .NET).
As dependências aparecem da seguinte forma:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>Para usar versões de API específicas para um tipo de recurso em um provedor de recursos específico, use as versões de API específicas definidas pelo Intellisense.
Você pode combinar todas as opções no mesmo aplicativo.
Instalar o SDK Java do Azure
Siga estas etapas para instalar o Java SDK:
Siga as instruções oficiais para instalar o Git. Consulte Introdução - Instalação do Git.
Siga as instruções para instalar o Java SDK e o Maven. A versão correta é a versão 8 do Java Developer Kit. A versão correta do Apache Maven é 3.0 ou superior. Para concluir o início rápido, a
JAVA_HOMEvariável de ambiente deve ser definida como o local de instalação do Java Development Kit. Para obter mais informações, consulte Criar sua primeira função com Java e Maven.Para instalar os pacotes de dependência corretos, abra o arquivo Pom.xml em seu aplicativo Java. Adicione uma dependência, conforme mostrado no código a seguir:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>O conjunto de pacotes que precisam ser instalados depende da versão do perfil que você deseja usar. Os nomes de pacote para as versões de perfil são:
- com.microsoft.azure.profile_2019_03_01_hybrid
-
com.microsoft.azure
- últimas notícias
Perfis
Para perfis que contenham datas, para usar um perfil ou versão diferente do SDK, substitua a data em com.microsoft.azure.profile<date>_hybrid. Por exemplo, para a versão 2008, o perfil é 2019_03_01, e a cadeia de caracteres se torna com.microsoft.azure.profile_2019_03_01_hybrid. Observe que, às vezes, a equipe do SDK altera o nome dos pacotes, portanto, simplesmente substituir a data de uma cadeia de caracteres por uma data diferente pode não funcionar. Consulte a tabela a seguir para associação de perfis e versões do Azure Stack.
| Versão do Azure Stack | Perfil |
|---|---|
| 2311 | 01/09/2020 |
| 2301 | 01/09/2020 |
| 2206 | 2020_09_01 |
| 2108 | 2020_09_01 |
| 2102 | 01/09/2020 |
| 2008 | 01-03-2019 |
Para obter mais informações sobre o Azure Stack Hub e perfis de API, consulte o Resumo dos perfis de API.
Subscrição
Se ainda não tiver uma subscrição, crie uma subscrição e guarde o ID da subscrição para ser utilizado mais tarde. Para obter informações sobre como criar uma assinatura, consulte este documento.
Entidade de serviço
Uma entidade de serviço e as suas informações de ambiente correspondentes devem ser criadas e guardadas em algum lugar. A entidade de serviço com owner função é recomendada, mas, dependendo da amostra, uma contributor função pode ser suficiente. Consulte o LEIA-ME no repositório de exemplo para obter os valores necessários. Você pode ler esses valores em qualquer formato suportado pela linguagem SDK, como a partir de um arquivo JSON (que nossos exemplos usam). Dependendo da amostra que está a ser executada, nem todos estes valores podem ser utilizados. Consulte o repositório de exemplo para obter código de exemplo atualizado ou mais informações.
ID do inquilino
Para localizar o diretório ou a ID do locatário para seu Azure Stack Hub, siga as instruções neste artigo.
Registrar provedores de recursos
Registre os provedores de recursos necessários seguindo este documento. Esses provedores de recursos serão necessários dependendo dos exemplos que você deseja executar. Por exemplo, se você quiser executar um exemplo de VM, o registro do Microsoft.Compute provedor de recursos será necessário.
Ponto de extremidade do gerenciador de recursos do Azure Stack
O Azure Resource Manager (ARM) é uma estrutura de gerenciamento que permite aos administradores implantar, gerenciar e monitorar recursos do Azure. O Azure Resource Manager pode lidar com essas tarefas como um grupo, em vez de individualmente, em uma única operação. Você pode obter os metadados do ponto final do Gerenciador de Recursos. O ponto de extremidade retorna um arquivo JSON com as informações necessárias para executar seu código.
- O ResourceManagerEndpointUrl no Azure Stack Development Kit (ASDK) é:
https://management.local.azurestack.external/. - O ResourceManagerEndpointUrl em sistemas integrados é:
https://management.region.<fqdn>/, onde<fqdn>é o seu nome de domínio totalmente qualificado. - Para recuperar os metadados necessários:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Para obter as versões de API disponíveis, consulte Especificações da API restante do Azure. Por exemplo, na versão2020-09-01do perfil, pode alterar oapi-versionpara2019-10-01no provedor de recursosmicrosoft.resources.
Exemplo de 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"]
}
}
Confiar no certificado raiz da CA do Azure Stack Hub
Se você estiver usando o Azure Stack Development Kit (ASDK), deverá confiar no certificado raiz da CA em sua máquina remota. Você não precisa confiar no certificado raiz da CA com os sistemas integrados do Azure Stack Hub.
Mac OS
Exporte o certificado autoassinado do Azure Stack Hub para sua área de trabalho.
Em um prompt de comando, altere o diretório para
%JAVA_HOME%\bin.Execute o seguinte comando:
.\keytool.exe -importcert -noprompt -file <location of the exported certificate here> -alias root -keystore %JAVA_HOME%\lib\security\cacerts -trustcacerts -storepass changeit
Perfis de API existentes
com.microsoft.azure.profile_2019_03_01_hybrid: Perfil mais recente criado para o Azure Stack Hub. Use este perfil para que os serviços sejam mais compatíveis com o Azure Stack Hub, desde que esteja na versão 1904 ou numa versão posterior.
com.microsoft.azure.profile_2018_03_01_hybrid: Perfil criado para o Azure Stack Hub. Use este perfil para que os serviços sejam compatíveis com as versões 1808 ou posteriores do Azure Stack Hub.
com.microsoft.azure: Perfil que consiste nas versões mais recentes de todos os serviços. Utilize as versões mais recentes de todos os serviços.
Para obter mais informações sobre o Azure Stack Hub e perfis de API, consulte o Resumo dos perfis de API.
Uso do perfil da API do SDK Java do Azure
O código a seguir autentica o principal de serviço no Azure Stack Hub. Ele cria um token usando a ID do locatário e a base de autenticação, que é específica do 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());
Esse código permite que você use as dependências do perfil da API para implantar seu aplicativo com êxito no Azure Stack Hub.
Definir funções de configuração do ambiente do Azure Stack Hub
Para registar o serviço de nuvem Azure Stack Hub com os endpoints corretos, use o seguinte código:
// 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('.')));
}
});
A getActiveDirectorySettings chamada no código anterior recupera os endpoints dos metadados. Ele indica as variáveis de ambiente da chamada que é feita:
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;
}
Exemplo de projeto de teste de unidade
Clone o repositório usando o seguinte comando:
git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybridCrie um principal de serviço do Azure e atribua uma função para aceder à subscrição. Para obter instruções sobre como criar uma entidade de serviço, consulte Usar o Azure PowerShell para criar uma entidade de serviço com um certificado.
Recupere as seguintes variáveis de ambiente necessárias:
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_SUBSCRIPTION_IDARM_ENDPOINTRESOURCE_LOCATION
Defina as seguintes variáveis de ambiente usando as informações recuperadas do principal de serviço que criou usando o terminal de comandos.
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}
No Windows, use set em vez de exportar.
Utilize a função
getActiveDirectorySettingspara obter os pontos de extremidade de metadados do Azure Resource Manager.// Get Azure Stack Hub cloud endpoints final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);No arquivo Pom.xml , adicione a seguinte dependência para usar o perfil híbrido 2019-03-01 para o Azure Stack Hub. Esta dependência instala os módulos associados a este perfil para os fornecedores de recursos de Computação, Rede, Armazenamento, Cofre de Chaves e Serviços de Aplicações:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>No prompt de comando que estava aberto para definir as variáveis de ambiente, digite o seguinte comando:
mvn clean compile exec:java
Exemplos
Consulte este repositório de exemplo para obter o código de exemplo atualizado (track 2). Consulte este repositório de exemplo para obter o código de exemplo da faixa 1. A raiz README.md descreve os requisitos gerais, e cada subdiretório contém um exemplo específico com seu próprio README.md sobre como executar esse exemplo.
Consulte aqui o exemplo aplicável à versão 2008 ou perfil 2019-03-01 do Azure Stack e abaixo.
Próximos passos
Saiba mais sobre perfis de API: