Začínáme s vývojem pro cloud s využitím Javy v Azure
Tento článek vás provede nastavením vývojového prostředí pro vývoj pro Azure v Javě. Pak vytvoříte nějaké prostředky Azure a připojíte se k nim, abyste měli základní úkoly, jako je nahrání souboru nebo nasazení webové aplikace. Až budete hotovi, budete připraveni začít používat služby Azure ve vlastních aplikacích v Javě.
Požadavky
- Účet Azure: Pokud ho nemáte, získejte bezplatnou zkušební verzi.
- Azure Cloud Shell nebo Azure CLI 2.0
- Java 8, která je součástí Azure Cloud Shell.
- Maven 3, který je součástí Azure Cloud Shell.
Nastavení ověřování
Ke spouštění vzorového kódu v tomto kurzu vaše aplikace v Javě musí mít ve vašem předplatném Azure oprávnění ke čtení a vytváření. Vytvořte objekt služby a nakonfigurujte aplikaci tak, aby se spouštěl s jeho přihlašovacími údaji. Objekty služby poskytují způsob, jak vytvořit neinteraktivní účet přidružený k vaší identitě, kterému udělíte pouze oprávnění, která vaše aplikace potřebuje ke spuštění.
Pomocí Azure CLI 2.0vytvořte objekt služby a zachyťte výstup:
az ad sp create-for-rbac --name AzureJavaTest --role Contributor
Obdržíte odpověď v následujícím formátu:
{
"appId": "a487e0c1-82af-47d9-9a0b-af184eb87646d",
"displayName": "AzureJavaTest",
"name": "http://AzureJavaTest",
"password": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"tenant": "tttttttt-tttt-tttt-tttt-tttttttttttt"
}
Dále nakonfigurujte proměnné prostředí:
AZURE_SUBSCRIPTION_ID: PoužijteAZURE_SUBSCRIPTION_IDz v Azure CLIaz account show2.0.AZURE_CLIENT_ID: Použijte hodnotuAZURE_CLIENT_IDz výstupu z výstupu objektu služby.AZURE_CLIENT_SECRET: Použijte hodnotuAZURE_CLIENT_SECRETz výstupu objektu služby.AZURE_TENANT_ID: Použijte hodnotuAZURE_TENANT_IDz výstupu objektu služby.
Další možnosti ověřování najdete v tématu Klientská knihovna Azure Identity pro Javu.
Nástroje
Vytvoření nového projektu Maven
Poznámka
Tento článek používá nástroj pro sestavení Maven k sestavení a spuštění ukázkového kódu. S Azure SDK pro Javu pracují také další nástroje sestavení, jako je Gradle.
Vytvořte projekt Maven z příkazového řádku v novém adresáři ve vašem systému.
mkdir java-azure-test
cd java-azure-test
mvn archetype:generate -DgroupId=com.fabrikam -DartifactId=AzureApp \
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Tento krok vytvoří základní projekt Maven v adresáři testAzureApp. Přidejte následující položky do souboru pom.xml pro import knihoven použitých v ukázkovém kódu v tomto kurzu.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.8.0</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.2.1.jre8</version>
</dependency>
Pod element nejvyšší úrovně přidejte položku , která ke spuštění ukázek použije buildproject modul build
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<mainClass>com.fabrikam.AzureApp</mainClass>
</configuration>
</plugin>
</plugins>
</build>
Instalace sady Azure Toolkit for IntelliJ
Sada Azure Toolkit je nezbytná, pokud plánujete nasazovat webové aplikace nebo rozhraní API prostřednictvím kódu programu. Rychlý start s Azure Web Apps najdete v tématu Azure Toolkit pro IntelliJ. Obsahuje také komplexní referenční knihu k sadě SDK vloženou pro jakýkoli vývoj v Azure pomocí sady Java SDK. Následující kroky shrnují proces instalace.
- Vyberte nabídku File (Soubor) a pak vyberte Nastavení.
- Vyberte Procházet úložiště avyhledejte Azure a nainstalujte sadu Azure Toolkit for Intellij.
- Restartujte IntelliJ.
- Otevřít referenční knihu z webu Nástroje – Azure – Referenční příručka k > sadě Azure SDK

Instalace sady Azure Toolkit for Eclipse
Sada Azure Toolkit je nezbytná, pokud plánujete nasazovat webové aplikace nebo rozhraní API prostřednictvím kódu programu. V současné době se nevyuží k žádným jiným druhům vývoje. Následující kroky shrnují proces instalace. Rychlý start najdete v tématu Azure Toolkit pro Eclipse.
- Vyberte nabídku Nápověda a pak vyberte Nainstalovat nový software.
- Do pole Work with (Pracovat s) zadejte a stiskněte Enter.
- Zaškrtněte políčko vedle položky Sada Azure Toolkit for Java. Zrušte zaškrtnutí políčka Během instalace kontaktovat všechny lokality aktualizací a najít požadovaný software. Pak vyberte Další.
Vytvoření virtuálního počítače s Linuxem
Vytvořte nový soubor s názvem AzureApp.java v adresáři src/main/java/com/fabrikam projektu a vložte následující blok kódu. Aktualizujte proměnné userName a sshKey s použitím skutečných hodnot pro váš počítač. Kód vytvoří nový virtuální počítač s Linuxem a názvem ve skupině prostředků spuštěné v testLinuxVMsampleResourceGroup USA – východ Azure.
package com.fabrikam;
import com.azure.core.credential.TokenCredential;
import com.azure.core.http.policy.HttpLogDetailLevel;
import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.Region;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.AzureAuthorityHosts;
import com.azure.identity.EnvironmentCredentialBuilder;
import com.azure.resourcemanager.AzureResourceManager;
import com.azure.resourcemanager.compute.models.KnownLinuxVirtualMachineImage;
import com.azure.resourcemanager.compute.models.VirtualMachine;
import com.azure.resourcemanager.compute.models.VirtualMachineSizeTypes;
public class AzureApp {
public static void main(String[] args) {
final String userName = "YOUR_VM_USERNAME";
final String sshKey = "YOUR_PUBLIC_SSH_KEY";
try {
TokenCredential credential = new EnvironmentCredentialBuilder()
.authorityHost(AzureAuthorityHosts.AZURE_PUBLIC_CLOUD)
.build();
// If you don't set the tenant ID and subscription ID via environment variables,
// change to create the Azure profile with tenantId, subscriptionId, and Azure environment.
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
AzureResourceManager azureResourceManager = AzureResourceManager.configure()
.withLogLevel(HttpLogDetailLevel.BASIC)
.authenticate(credential, profile)
.withDefaultSubscription();
// Create an Ubuntu virtual machine in a new resource group.
VirtualMachine linuxVM = azureResourceManager.virtualMachines().define("testLinuxVM")
.withRegion(Region.US_EAST)
.withNewResourceGroup("sampleVmResourceGroup")
.withNewPrimaryNetwork("10.0.0.0/24")
.withPrimaryPrivateIPAddressDynamic()
.withoutPrimaryPublicIPAddress()
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername(userName)
.withSsh(sshKey)
.withUnmanagedDisks()
.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
.create();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
Spusťte ukázku z příkazového řádku.
mvn compile exec:java
V konzole se zobrazí některé požadavky a odpovědi REST, protože sada SDK provádí základní volání služby Azure REST API a nakonfiguruje virtuální počítač a jeho prostředky. Po dokončení programu ověřte virtuální počítač ve vašem předplatném pomocí Azure CLI 2.0.
az vm list --resource-group sampleVmResourceGroup
Po ověření, že kód funguje, pomocí rozhraní příkazového řádku odstraňte virtuální počítač a jeho prostředky.
az group delete --name sampleVmResourceGroup
Nasazení webové aplikace z úložiště GitHub
Nahraďte hlavní metodu AzureApp.java v souboru následující metodou. Před spuštěním appName kódu aktualizujte proměnnou na jedinečnou hodnotu. Tento kód nasadí webovou aplikaci z větve master ve veřejném úložišti GitHub do nové master spuštěné na cenové úrovni Free.
public static void main(String[] args) {
try {
final String appName = "YOUR_APP_NAME";
TokenCredential credential = new EnvironmentCredentialBuilder()
.authorityHost(AzureAuthorityHosts.AZURE_PUBLIC_CLOUD)
.build();
// If you don't set the tenant ID and subscription ID via environment variables,
// change to create the Azure profile with tenantId, subscriptionId, and Azure environment.
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
AzureResourceManager azureResourceManager = AzureResourceManager.configure()
.withLogLevel(HttpLogDetailLevel.BASIC)
.authenticate(credential, profile)
.withDefaultSubscription();
WebApp app = azureResourceManager.webApps().define(appName)
.withRegion(Region.US_WEST2)
.withNewResourceGroup("sampleWebResourceGroup")
.withNewWindowsPlan(PricingTier.FREE_F1)
.defineSourceControl()
.withPublicGitRepository(
"https://github.com/Azure-Samples/app-service-web-java-get-started")
.withBranch("master")
.attach()
.create();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
Spusťte kód jako předtím pomocí Mavenu.
mvn clean compile exec:java
Otevřete prohlížeč, který na aplikaci odkazuje, pomocí rozhraní příkazového řádku.
az webapp browse --resource-group sampleWebResourceGroup --name YOUR_APP_NAME
Po ověření nasazení odeberte z předplatného webovou aplikaci a plán.
az group delete --name sampleWebResourceGroup
Připojení k databázi Azure SQL
Aktuální hlavní metodu v souboru AzureApp.java nahraďte následujícím kódem. Nastavte skutečné hodnoty proměnných.
Tento kód vytvoří novou databázi SQL s pravidlem brány firewall, které umožňuje vzdálený přístup. Potom se k ní kód připojí pomocí ovladače SQL Database DC.
public static void main(String args[])
{
// Create the db using the management libraries.
try {
TokenCredential credential = new EnvironmentCredentialBuilder()
.authorityHost(AzureAuthorityHosts.AZURE_PUBLIC_CLOUD)
.build();
// If you don't set the tenant ID and subscription ID via environment variables,
// change to create the Azure profile with tenantId, subscriptionId, and Azure environment.
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
AzureResourceManager azureResourceManager = AzureResourceManager.configure()
.withLogLevel(HttpLogDetailLevel.BASIC)
.authenticate(credential, profile)
.withDefaultSubscription();
final String adminUser = "YOUR_USERNAME_HERE";
final String sqlServerName = "YOUR_SERVER_NAME_HERE";
final String sqlDbName = "YOUR_DB_NAME_HERE";
final String dbPassword = "YOUR_PASSWORD_HERE";
final String firewallRuleName = "YOUR_RULE_NAME_HERE";
SqlServer sampleSQLServer = azureResourceManager.sqlServers().define(sqlServerName)
.withRegion(Region.US_EAST)
.withNewResourceGroup("sampleSqlResourceGroup")
.withAdministratorLogin(adminUser)
.withAdministratorPassword(dbPassword)
.defineFirewallRule(firewallRuleName)
.withIpAddressRange("0.0.0.0","255.255.255.255")
.attach()
.create();
SqlDatabase sampleSQLDb = sampleSQLServer.databases().define(sqlDbName).create();
// Assemble the connection string to the database.
final String domain = sampleSQLServer.fullyQualifiedDomainName();
String url = "jdbc:sqlserver://"+ domain + ":1433;" +
"database=" + sqlDbName +";" +
"user=" + adminUser+ "@" + sqlServerName + ";" +
"password=" + dbPassword + ";" +
"encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
// Connect to the database, create a table, and insert an entry into it.
Connection conn = DriverManager.getConnection(url);
String createTable = "CREATE TABLE CLOUD ( name varchar(255), code int);";
String insertValues = "INSERT INTO CLOUD (name, code ) VALUES ('Azure', 1);";
String selectValues = "SELECT * FROM CLOUD";
Statement createStatement = conn.createStatement();
createStatement.execute(createTable);
Statement insertStatement = conn.createStatement();
insertStatement.execute(insertValues);
Statement selectStatement = conn.createStatement();
ResultSet rst = selectStatement.executeQuery(selectValues);
while (rst.next()) {
System.out.println(rst.getString(1) + " "
+ rst.getString(2));
}
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.getStackTrace().toString());
}
}
Spusťte ukázku z příkazového řádku.
mvn clean compile exec:java
Pak vyčistěte prostředky pomocí rozhraní příkazového řádku.
az group delete --name sampleSqlResourceGroup
Zápis objektu blob do nového účtu úložiště
Aktuální hlavní metodu v souboru AzureApp.java nahraďte následujícím kódem. Tento kód vytvoří účet úložiště Azure. Potom tento kód použije Azure Storage pro Javu k vytvoření nového textového souboru v cloudu.
public static void main(String[] args) {
try {
TokenCredential tokenCredential = new EnvironmentCredentialBuilder()
.authorityHost(AzureAuthorityHosts.AZURE_PUBLIC_CLOUD)
.build();
// If you don't set the tenant ID and subscription ID via environment variables,
// change to create the Azure profile with tenantId, subscriptionId, and Azure environment.
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
AzureResourceManager azureResourceManager = AzureResourceManager.configure()
.withLogLevel(HttpLogDetailLevel.BASIC)
.authenticate(tokenCredential, profile)
.withDefaultSubscription();
// Create a new storage account.
String storageAccountName = "YOUR_STORAGE_ACCOUNT_NAME_HERE";
StorageAccount storage = azureResourceManager.storageAccounts().define(storageAccountName)
.withRegion(Region.US_WEST2)
.withNewResourceGroup("sampleStorageResourceGroup")
.create();
// Create a storage container to hold the file.
List<StorageAccountKey> keys = storage.getKeys();
PublicEndpoints endpoints = storage.endPoints();
String accountName = storage.name();
String accountKey = keys.get(0).value();
String endpoint = endpoints.primary().blob();
StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
BlobServiceClient storageClient =new BlobServiceClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
// Container name must be lowercase.
BlobContainerClient blobContainerClient = storageClient.getBlobContainerClient("helloazure");
blobContainerClient.create();
// Make the container public.
blobContainerClient.setAccessPolicy(PublicAccessType.CONTAINER, null);
// Write a blob to the container.
String fileName = "helloazure.txt";
String textNew = "Hello Azure";
BlobClient blobClient = blobContainerClient.getBlobClient(fileName);
InputStream is = new ByteArrayInputStream(textNew.getBytes());
blobClient.upload(is, textNew.length());
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
Spusťte ukázku z příkazového řádku.
mvn clean compile exec:java
K vyhledání souboru helloazure.txt v účtu úložiště můžete použít Azure Portal nebo pomocí Průzkumník služby Azure Storage.
Pomocí rozhraní příkazového řádku vyčistěte účet úložiště.
az group delete --name sampleStorageResourceGroup
Zkoumání dalších ukázek
Další informace o použití knihoven pro správu Azure pro Javu ke správě prostředků a automatizaci úloh najdete v našem ukázkovém kódu pro virtuální počítače,webové aplikace a SQL databázi.
Referenční informace a poznámky k verzi
Pro všechny balíčky jsou k dispozici referenční informace.
Získání pomoci a poskytnutí zpětné vazby
Na Stack Overflow se můžete ptát komunity. Hlášení chyb a otevření problémů se sadou Azure SDK pro Javu v GitHub úložiště.