Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vás provede nastavením vývojového prostředí pro vývoj v Javě. Pak vytvoříte nějaké prostředky Azure a připojíte se k nim, abyste mohli provádět některé základní úlohy, 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 Java.
Požadavky
- Účet Azure. Pokud ho nemáte, získat bezplatnou zkušební verzi.
- azure Cloud Shell nebo Azure CLI 2.0.
- Java 8, která je součástí Azure Cloud Shellu.
- Maven 3, která je součástí Azure Cloud Shellu.
Nastavení ověřování
Aplikace v Javě potřebuje číst a vytvářet oprávnění ve vašem předplatném Azure ke spuštění ukázkového kódu v tomto kurzu. Vytvořte instanční objekt a nakonfigurujte aplikaci tak, aby běžela s jeho přihlašovacími údaji. Instanční objekty poskytují způsob, jak vytvořit neinteraktivní účet přidružený k vaší identitě, ke které udělíte pouze oprávnění, která vaše aplikace potřebuje ke spuštění.
vytvoření instančního objektu pomocí azure CLI 2.0a zachycení výstupu:
az ad sp create-for-rbac \
--name AzureJavaTest \
--role Contributor \
--scopes /subscriptions/<your-subscription-ID>
Tento příkaz vám poskytne 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žijte hodnotu ID zaz account showv Azure CLI 2.0. -
AZURE_CLIENT_ID: Použijte hodnotu appId z výstupu instančního objektu. -
AZURE_CLIENT_SECRET: Použijte hodnotu hesla z výstupu instančního objektu. -
AZURE_TENANT_ID: Použijte hodnotu tenanta z výstupu instančního objektu.
Další možnosti ověřování najdete v klientské knihovně Azure Identity pro javu.
Poznámka
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Tok ověřování popsaný v tomto postupu, například pro databáze, mezipaměti, zasílání zpráv nebo služby AI, vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok používejte pouze v případě, že nejsou možné zabezpečit možnosti, jako jsou spravované identity pro připojení bez hesla nebo bez klíčů. V případě místních operací počítačů upřednostňujete identity uživatelů pro připojení bez hesla nebo bez klíčů.
Nářadí
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. Další nástroje sestavení, jako je Gradle, také pracují se sadou Azure SDK pro Javu.
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. Do souboru pom.xml projektu přidejte následující položky 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>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.33</version>
</dependency>
Přidejte položku build pod prvek project nejvyšší úrovně, který použije maven-exec-plugin ke spuštění ukázek.
maven-compiler-plugin slouží ke konfiguraci zdrojového kódu a vygenerovaných tříd pro Javu 8.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<mainClass>com.fabrikam.App</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Vytvoření virtuálního počítače s Linuxem
Vytvořte nový soubor s názvem App.java v adresáři src/main/java/com/fabrikam adresář a vložte následující blok kódu. Aktualizujte proměnné userName a sshKey skutečnými hodnotami pro váš počítač. Kód vytvoří nový virtuální počítač s Linuxem s názvem testLinuxVM ve skupině prostředků sampleResourceGroup spuštěnou v oblasti Azure USA – východ.
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.DefaultAzureCredentialBuilder;
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 App {
public static void main(String[] args) {
final String userName = "YOUR_VM_USERNAME";
final String sshKey = "YOUR_PUBLIC_SSH_KEY";
try {
TokenCredential credential = new DefaultAzureCredentialBuilder()
.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_18_04_LTS)
.withRootUsername(userName)
.withSsh(sshKey)
.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 provede základní volání rozhraní Azure REST API ke konfiguraci virtuálního počítače a jeho prostředků. 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 fungoval, 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 v App.java následujícím způsobem. Před spuštěním kódu aktualizujte proměnnou appName na jedinečnou hodnotu. Tento kód nasadí webovou aplikaci z větve master ve veřejném úložišti GitHubu do nového webové aplikace Azure App Service běžící v cenové úrovni Free.
public static void main(String[] args) {
try {
final String appName = "YOUR_APP_NAME";
TokenCredential credential = new DefaultAzureCredentialBuilder()
.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řed použitím Mavenu.
mvn clean compile exec:java
Otevřete prohlížeč odkaz na aplikaci pomocí rozhraní příkazového řádku.
az webapp browse --resource-group sampleWebResourceGroup --name YOUR_APP_NAME
Po ověření nasazení odeberte webovou aplikaci a plán z vašeho předplatného.
az group delete --name sampleWebResourceGroup
Připojení k databázi Azure SQL
Nahraďte aktuální hlavní metodu v App.java 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. Pak se k němu kód připojí pomocí ovladače JBDC služby SQL Database.
public static void main(String args[]) {
// Create the db using the management libraries.
try {
TokenCredential credential = new DefaultAzureCredentialBuilder()
.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.
try (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";
try (Statement createStatement = conn.createStatement()) {
createStatement.execute(createTable);
}
try (Statement insertStatement = conn.createStatement()) {
insertStatement.execute(insertValues);
}
try (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 prostředky vyčistíte pomocí rozhraní příkazového řádku.
az group delete --name sampleSqlResourceGroup
Zápis objektu blob do nového účtu úložiště
Nahraďte aktuální hlavní metodu v App.java následujícím kódem. Tento kód vytvoří účet úložiště Azure. Kód pak pomocí knihoven Azure Storage pro Javu vytvoří nový textový soubor v cloudu.
public static void main(String[] args) {
try {
TokenCredential tokenCredential = new DefaultAzureCredentialBuilder()
.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
Soubor helloazure.txt můžete vyhledat ve svém účtu úložiště prostřednictvím webu Azure Portal nebo pomocí Průzkumníka služby Azure Storage.
Vyčistěte účet úložiště pomocí rozhraní příkazového řádku.
az group delete --name sampleStorageResourceGroup
Prozkoumání dalších ukázek
Další informace o používání 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ých aplikacía databáze SQL.
Referenční informace a poznámky k verzi
Pro všechny balíčky je k dispozici referenční .
Získání nápovědy a poskytnutí zpětné vazby
Publikujte dotazy komunitě na Stack Overflow. Hlásit chyby a otevřít problémy se sadou Azure SDK pro Javu v úložišti GitHubu.