Azure Stack Hub'da Java ile API sürüm profillerini kullanma
Önemli
Java SDK'sı, 1. izden 2'ye güncelleştirildi. En kısa sürede track 2 SDK'sına geçiş gerçekleştirmenizi öneririz. Yönergeler için bu geçiş kılavuzuna bakın.
Azure Stack Hub Resource Manager için Java SDK'sı, altyapınızı oluşturmanıza ve yönetmenize yardımcı olacak araçlar sağlar. SDK'daki kaynak sağlayıcıları arasında işlem, ağ, depolama, uygulama hizmetleri ve Azure Key Vault bulunur. Karma Java Örnekleri deposunu GitHub'da bulabilirsiniz. Bu makale ortamınızı ayarlamanıza, doğru kimlik bilgilerini almanıza, depoyu almanıza ve Azure Stack Hub'da bir kaynak grubu oluşturmanıza yardımcı olur.
Java SDK'sını kullanmak gerçek bir hibrit bulut geliştirici deneyimi sağlar. Java SDK'sında sürümündeki POM.xml
sürüm bağımlılıklarını değiştirmek, genel Azure kaynakları ile Azure Stack Hub'daki kaynaklar arasında geçiş yapmanıza yardımcı olarak hibrit bulut geliştirmeyi etkinleştirir.
Hizmetlerin en son sürümünü kullanmak için bağımlılık olarak en son profili kullanın.
Mevcut com.azure.resourcemanager bağımlılığınızı alıp sürümünden x.y.z
x.y.z-hybrid
olarak değiştirerek uygulamanızı Azure tack Hub'daki kaynağa hedefleyebilirsiniz. Azure Stack Hub desteği sağlayan karma paketler, sürümün sonunda bir -hybrid
sonek kullanır, örneğin: 1.0.0-hybrid
. Bu, sürümle ilişkili statik bir uç nokta koleksiyonuna işaret eder.
En son profili almak için mevcut com.azure.resourcemanager bağımlılığınızı alın ve sürümü en son olarak değiştirin. En son profil Java paketleri, Azure ile tutarlı bir deneyim sağlar. Paketler, Azure com.azure.resourcemanager ile aynı grup kimliğini paylaşır. Yapıt kimliği ve ad alanları da genel Azure ile aynıdır. Bu, Azure uygulamanızı Azure Stack Hub'a taşımanıza yardımcı olur. Azure Stack Hub'da karma profilin bir parçası olarak kullanılan uç noktalar hakkında daha fazla bilgi edinmek için bkz. API profillerinin özeti.
Profil, Maven projesindeki pom.xml
dosyada bağımlılık olarak belirtilir. Açılan listeden doğru sınıfı seçerseniz (.NET'de yaptığınız gibi) profil modülleri otomatik olarak yükler.
Geliştirme ortamınızı kurma
Ortamınızı SDK'yı çalıştırmaya hazırlamak için Eclipse veya Visual Studio Code gibi bir IDE kullanabilirsiniz, ancak Git, Java SDK ve Apache Maven yüklü olmalıdır. Geliştirme ortamınızı ayarlama önkoşullarıyla ilgili ayrıntıları Java için Azure SDK'sını kullanma bölümünde bulabilirsiniz
Git'i yükleyin. Git'i yüklemek için resmi yönergeleri Başlarken - Git'i Yükleme bölümünde bulabilirsiniz.
Java SDK'sını yükleyin ve ortam değişkeninizi
JAVA_HOME
Java Development Kit ikili dosyalarının konumuna ayarlayın. OpenJDK için indirilebilir yükleme medyası yönergelerini bulabilirsiniz. Java Developer Kit'in 8 veya daha yeni bir sürümünü yükleyin.Apache Maven'ı yükleyin. Yönergeleri Apache Maven Projesi'nde bulabilirsiniz. Apache Maven'ı yükleme 3.0 veya üzeridir.
Java ve API sürümü profilleri
Tüm hizmetlerin en son sürümlerini kullanmak için bağımlılık olarak en son profili kullanın.
En son profili kullanmak için bağımlılık com.microsoft.azure'dır.
Azure Stack Hub'da kullanılabilen en son desteklenen hizmetleri kullanmak için com.microsoft.azure.profile_2019_03_01_hybrid profilini kullanın.
- Profil ,Pom.xml dosyasında bağımlılık olarak belirtilir ve açılan listeden doğru sınıfı seçerseniz modülleri otomatik olarak yükler (.NET'te olduğu gibi).
Bağımlılıklar aşağıdaki gibi görünür:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>
Belirli bir kaynak sağlayıcısındaki bir kaynak türü için belirli API sürümlerini kullanmak için IntelliSense aracılığıyla tanımlanan belirli API sürümlerini kullanın.
Tüm seçenekleri aynı uygulamada birleştirebilirsiniz.
Azure Java SDK'sını yükleme
Java SDK'sını yüklemek için şu adımları izleyin:
Git'i yüklemek için resmi yönergeleri izleyin. Bkz . Başlarken - Git'i Yükleme.
Java SDK'sını ve Maven'ı yüklemek için yönergeleri izleyin. Doğru sürüm, Java Developer Kit'in 8. sürümüdür. Apache Maven'in doğru sürümü 3.0 veya üzeridir. Hızlı başlangıcı tamamlamak için ortam değişkeninin
JAVA_HOME
Java Geliştirme Seti'nin yükleme konumuna ayarlanması gerekir. Daha fazla bilgi için bkz. Java ve Maven ile ilk işlevinizi oluşturma.Doğru bağımlılık paketlerini yüklemek için Java uygulamanızda Pom.xml dosyasını açın. Aşağıdaki kodda gösterildiği gibi bir bağımlılık ekleyin:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>
Yüklenmesi gereken paket kümesi, kullanmak istediğiniz profil sürümüne bağlıdır. Profil sürümlerinin paket adları şunlardır:
- com.microsoft.azure.profile_2019_03_01_hybrid
-
com.microsoft.azure
- Son
Profiller
Tarih içeren profiller için farklı bir SDK profili veya sürümü kullanmak için içindeki tarihi com.microsoft.azure.profile<date>_hybrid
yazın. Örneğin, 2008 sürümü için profil olur 2019_03_01
ve dize olur com.microsoft.azure.profile_2019_03_01_hybrid
. SDK ekibinin bazen paketlerin adını değiştirdiğini, bu nedenle bir dizenin tarihini farklı bir tarihle değiştirmenin çalışmayabileceğini unutmayın. Profillerin ve Azure Stack sürümlerinin ilişkilendirmesi için aşağıdaki tabloya bakın.
Azure Stack sürümü | 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 |
Azure Stack Hub ve API profilleri hakkında daha fazla bilgi için bkz. API profillerinin özeti.
Abonelik
Henüz bir aboneliğiniz yoksa, bir abonelik oluşturun ve daha sonra kullanmak üzere abonelik kimliğini kaydedin. Abonelik oluşturma hakkında bilgi için bu belgeye bakın.
Hizmet sorumlusu
Bir hizmet sorumlusu ve ilişkili ortam bilgileri oluşturulup bir yere kaydedilmelidir. Rolü olan owner
hizmet sorumlusu önerilir, ancak örne bağlı olarak bir contributor
rol yeterli olabilir. Gerekli değerler için örnek depodaki BENİOKU'ya bakın. Bu değerleri BIR JSON dosyasından (örneklerimizin kullandığı gibi) SDK dili tarafından desteklenen herhangi bir biçimde okuyabilirsiniz. Çalıştırılmakta olan örne bağlı olarak, bu değerlerin tümü kullanılamaz. Güncelleştirilmiş örnek kod veya daha fazla bilgi için örnek depoya bakın.
Kiracı Kimliği
Azure Stack Hub'ınızın dizin veya kiracı kimliğini bulmak için bu makaledeki yönergeleri izleyin.
Kaynak sağlayıcılarını kaydetme
Bu belgeyi izleyerek gerekli kaynak sağlayıcılarını kaydedin. Çalıştırmak istediğiniz örneklere bağlı olarak bu kaynak sağlayıcıları gereklidir. Örneğin, bir VM örneği çalıştırmak istiyorsanız kaynak Microsoft.Compute
sağlayıcısı kaydı gereklidir.
Azure Stack resource manager uç noktası
Azure Resource Manager (ARM), yöneticilerin Azure kaynaklarını dağıtmasını, yönetmesini ve izlemesini sağlayan bir yönetim çerçevesidir. Azure Resource Manager bu görevleri tek bir işlemde tek tek değil grup olarak işleyebilir. Meta veri bilgilerini Resource Manager uç noktasından alabilirsiniz. Uç nokta, kodunuzu çalıştırmak için gereken bilgileri içeren bir JSON dosyası döndürür.
- Azure Stack Geliştirme Seti'ndeki (ASDK) ResourceManagerEndpointUrl :
https://management.local.azurestack.external/
. - Tümleşik sistemlerde ResourceManagerEndpointUrl şu şekildedir:
https://management.region.<fqdn>/
burada<fqdn>
tam etki alanı adınızdır. - Gerekli meta verileri almak için:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Kullanılabilir API sürümleri için bkz. Azure rest API belirtimleri. Örneğin,2020-09-01
profil sürümünde kaynak sağlayıcısımicrosoft.resources
için olarak değiştirebilirsinizapi-version
2019-10-01
.
Örnek 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"]
}
}
Azure Stack Hub CA kök sertifikasına güvenme
Azure Stack Geliştirme Seti'ni (ASDK) kullanıyorsanız, uzak makinenizdeki CA kök sertifikasına güvenmeniz gerekir. Azure Stack Hub tümleşik sistemleriyle CA kök sertifikasına güvenmeniz gerekmez.
Windows
Azure Stack Hub otomatik olarak imzalanan sertifikayı masaüstünüzde dışarı aktarın.
Komut isteminde dizinini olarak
%JAVA_HOME%\bin
değiştirin.Şu komutu çalıştırın:
.\keytool.exe -importcert -noprompt -file <location of the exported certificate here> -alias root -keystore %JAVA_HOME%\lib\security\cacerts -trustcacerts -storepass changeit
Mevcut API profilleri
com.microsoft.azure.profile_2019_03_01_hybrid: Azure Stack Hub için oluşturulan en son profil. 1904 veya sonraki bir sürümde olduğunuz sürece hizmetlerin Azure Stack Hub ile en iyi şekilde uyumlu olması için bu profili kullanın.
com.microsoft.azure.profile_2018_03_01_hybrid: Azure Stack Hub için oluşturulan profil. Hizmetlerin Azure Stack Hub 1808 veya sonraki sürümleriyle uyumlu olması için bu profili kullanın.
com.microsoft.azure: Tüm hizmetlerin en son sürümlerinden oluşan profil. Tüm hizmetlerin en son sürümlerini kullanın.
Azure Stack Hub ve API profilleri hakkında daha fazla bilgi için bkz. API profillerinin özeti.
Azure Java SDK API profili kullanımı
Aşağıdaki kod, Azure Stack Hub'da hizmet sorumlusunun kimliğini doğrular. Kiracı kimliğini ve Azure Stack Hub'a özgü kimlik doğrulama tabanını kullanarak bir belirteç oluşturur:
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());
Bu kod, uygulamanızı Azure Stack Hub'a başarıyla dağıtmak için API profili bağımlılıklarını kullanmanıza olanak tanır.
Azure Stack Hub ortam ayarı işlevlerini tanımlama
Azure Stack Hub bulutunu doğru uç noktalarla kaydetmek için aşağıdaki kodu kullanın:
// 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('.')));
}
});
getActiveDirectorySettings
Önceki koddaki çağrı, meta veri uç noktalarından uç noktaları alır. Yapılan çağrıdan ortam değişkenlerini belirtir:
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;
}
Örnek birim testi projesi
Aşağıdaki komutu kullanarak depoyu kopyalayın:
git clone https://github.com/Azure-Samples/Hybrid-Java-Samples.git -b resourcegroup-2019-03-01-hybrid
Bir Azure hizmet sorumlusu oluşturun ve aboneliğe erişmek için bir rol atayın. Hizmet sorumlusu oluşturma yönergeleri için bkz. Sertifikayla hizmet sorumlusu oluşturmak için Azure PowerShell kullanma.
Aşağıdaki gerekli ortam değişkenlerini alın:
AZURE_TENANT_ID
AZURE_CLIENT_ID
AZURE_CLIENT_SECRET
AZURE_SUBSCRIPTION_ID
ARM_ENDPOINT
RESOURCE_LOCATION
Komut istemini kullanarak oluşturduğunuz hizmet sorumlusundan alınan bilgileri kullanarak aşağıdaki ortam değişkenlerini ayarlayın:
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}
Windows'da dışarı aktarma yerine set kullanın.
getActiveDirectorySettings
azure Resource Manager meta veri uç noktalarını almak için işlevini kullanın.// Get Azure Stack Hub cloud endpoints final HashMap<String, String> settings = getActiveDirectorySettings(armEndpoint);
Pom.xml dosyasına aşağıdaki bağımlılığı ekleyerek Azure Stack Hub için 2019-03-01-karma profilini kullanın. Bu bağımlılık İşlem, Ağ, Depolama, Key Vault ve App Services kaynak sağlayıcıları için bu profille ilişkili modülleri yükler:
<dependency> <groupId>com.microsoft.azure.profile_2019_03_01_hybrid</groupId> <artifactId>azure</artifactId> <version>1.0.0-beta-1</version> </dependency>
Ortam değişkenlerini ayarlamak için açık olan komut istemine aşağıdaki komutu girin:
mvn clean compile exec:java
Örnekler
Güncel güncelleştirme (izleme 2) örnek kodu için bu örnek depoya bakın. 1 . örnek kodu izlemek için bu örnek depoya bakın. Kök README.md
, genel gereksinimleri açıklar ve her alt dizin, bu örneğin nasıl çalıştırıldığına ilişkin kendi README.md
örneği içeren belirli bir örneği içerir.
Azure Stack sürümü 2008
veya profili 2019-03-01
için geçerli olan örnek için buraya ve aşağıya bakın.
Sonraki adımlar
API profilleri hakkında daha fazla bilgi edinin: