Události
Vytváření inteligentních aplikací
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
V tomto kurzu se dozvíte, jak sestavit, nakonfigurovat a nasadit zabezpečenou aplikaci Spring Boot ve službě Aplikace Azure Service, která se připojuje k databázi MongoDB v Azure (ve skutečnosti databáze Cosmos DB pomocí rozhraní MongoDB API). Po dokončení budete mít aplikaci Java SE spuštěnou ve službě Aplikace Azure Service v Linuxu.
V tomto kurzu se naučíte:
Ukázkovou aplikaci můžete rychle nasadit v tomto kurzu a zobrazit ji spuštěnou v Azure. V Azure Cloud Shellu stačí spustit následující příkazy a postupovat podle pokynů:
mkdir msdocs-spring-boot-mongodb-sample-app
cd msdocs-spring-boot-mongodb-sample-app
azd init --template msdocs-spring-boot-mongodb-sample-app
azd up
Nejprve nastavíte ukázkovou aplikaci řízenou daty jako výchozí bod. Ukázkové úložiště zahrnuje konfiguraci vývojového kontejneru. Vývojový kontejner obsahuje vše, co potřebujete k vývoji aplikace, včetně databáze MongoDB, mezipaměti a všech proměnných prostředí, které ukázková aplikace potřebuje. Vývojový kontejner se může spouštět v kódu GitHubu, což znamená, že ukázku můžete spustit na libovolném počítači s webovým prohlížečem.
Krok 1: V novém okně prohlížeče:
Krok 2: Ve forku GitHubu:
Krok 3: V terminálu codespace:
mvn package spring-boot:run
.Your application running on port 8080 is available.
, vyberte Otevřít v prohlížeči.
Ukázkovou aplikaci byste měli vidět na nové kartě prohlížeče. Chcete-li zastavit server Jetty, zadejte Ctrl
+C
.Tip
O tomto úložišti můžete požádat GitHub Copilot . Příklad:
Máte problémy? Projděte si část Řešení potíží.
Nejprve vytvoříte prostředky Azure. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, které zahrnují App Service a Azure Cosmos DB. Pro proces vytváření zadáte:
https://<app-name>-<hash>.<region>.azurewebsites.net
.Přihlaste se k webu Azure Portal a podle těchto kroků vytvořte prostředky služby Aplikace Azure Service.
Krok 1: Na webu Azure Portal:
Krok 2: Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.
Krok 3: Dokončení nasazení trvá několik minut. Po dokončení nasazení vyberte tlačítko Přejít k prostředku . Přejdete přímo do aplikace App Service, ale vytvoří se následující prostředky:
Máte problémy? Projděte si část Řešení potíží.
Průvodce vytvořením vygeneroval připojovací řetězec, který jste už vytvořili jako nastavení aplikace. Osvědčeným postupem zabezpečení je ale úplné zachování tajných kódů mimo službu App Service. Tajné kódy přesunete do trezoru klíčů a změníte nastavení aplikace na referenční informace ke službě Key Vault pomocí konektorů služeb.
Krok 1: Na stránce služby App Service:
Krok 2: Vytvoření trezoru klíčů pro zabezpečenou správu tajných kódů
Krok 3:
Krok 4:
Krok 5: V dialogovém okně Vytvořit připojení pro připojení ke službě Key Vault:
Krok 6: Jste zpátky v dialogovém okně pro úpravy pro defaultConnector.
Krok 7: Ověření změn:
@Microsoft.KeyVault(...)
, což znamená, že se jedná o odkaz na trezor klíčů, protože tajný klíč je teď spravovaný v trezoru klíčů.Máte problémy? Projděte si část Řešení potíží.
V tomto kroku nakonfigurujete nasazení GitHubu pomocí GitHub Actions. Je to jen jeden z mnoha způsobů nasazení do služby App Service, ale také skvělý způsob, jak mít kontinuální integraci v procesu nasazení. Ve výchozím nastavení spustí každá git push
z vašich úložišť GitHub akci sestavení a nasazení.
Krok 1: V nabídce vlevo vyberte Deployment Center(Deployment Center).>
Krok 2: Na stránce Deployment Center:
.github/workflows
adresáři.
Ve výchozím nastavení centrum nasazení vytvoří identitu přiřazenou uživatelem pro pracovní postup k ověření pomocí ověřování Microsoft Entra (ověřování OIDC). Alternativní možnosti ověřování najdete v tématu Nasazení do služby App Service pomocí GitHub Actions.Krok 3:
The string 'java21' is not valid SeVer notation for a Java version
. Pokud chcete, vyberte na stránce neúspěšný krok sestavení a získejte další informace.
Krok 4: Chyba ukazuje, že během pracovního postupu GitHubu došlo k chybě. Pokud ho chcete vyřešit, nejprve stáhněte nejnovější změny do vašeho codespace. Vraťte se do prostoru kódu GitHubu ukázkového forku a spusťte git pull origin starter-no-infra
.
Tím se do vašeho prostoru kódu načte nově potvrzený soubor pracovního postupu.
Krok 5 (možnost 1: s GitHub Copilotem):
Krok 5 (možnost 2: bez GitHub Copilotu):
setup-java@v4
akci.java-version
na '21'
.Krok 6:
Fix error in java-version
. Nebo vyberte Krok 7: Zpět na stránce Deployment Center na webu Azure Portal:
Krok 8: Přejdete do úložiště GitHub a zjistíte, že je spuštěná akce GitHubu. Soubor pracovního postupu definuje dvě samostatné fáze, sestavení a nasazení. Počkejte na spuštění GitHubu, aby se zobrazil stav Dokončeno.
Máte problémy? Projděte si část Řešení potíží.
Krok 1: Na stránce služby App Service:
Krok 2: Přidejte do seznamu několik úkolů. Blahopřejeme, spouštíte webovou aplikaci ve službě Aplikace Azure Service se zabezpečeným připojením ke službě Azure Cosmos DB.
Máte problémy? Projděte si část Řešení potíží.
Aplikace Azure Služba zachytává všechny zprávy výstupu do konzoly, aby vám pomohla diagnostikovat problémy s aplikací. Ukázková aplikace obsahuje standardní příkazy protokolování Log4j, které demonstrují tuto funkci, jak je znázorněno v následujícím fragmentu kódu:
private static Logger logger = LoggerFactory.getLogger(TodoListController.class);
@Autowired
private TodoItemRepository todoItemRepository;
public TodoListController() {
}
/**
* HTTP GET
*/
@GetMapping(path = "/api/todolist/{index}", produces = {MediaType.APPLICATION_JSON_VALUE})
public TodoItem getTodoItem(@PathVariable("index") String index) {
logger.info("GET request access '/api/todolist/{}' path.", index);
return todoItemRepository.findById(index).get();
}
Krok 1: Na stránce služby App Service:
Krok 2: V nabídce vlevo vyberte Stream protokolu. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru.
Přečtěte si další informace o protokolování v aplikacích v Javě v řadě o povolení OpenTelemetry služby Azure Monitor pro .NET, Node.js, Python a aplikace v Javě.
Máte problémy? Projděte si část Řešení potíží.
Po dokončení můžete odstranit všechny prostředky z předplatného Azure odstraněním skupiny prostředků.
Krok 1: Na panelu hledání v horní části webu Azure Portal:
Krok 2: Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.
Krok 3:
V tomto kroku vytvoříte prostředky Azure a nasadíte ukázkovou aplikaci do App Service v Linuxu. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, které zahrnují App Service a Azure Cosmos DB.
Vývojový kontejner už má Azure Developer CLI (AZD).
V kořenovém adresáři úložiště spusťte azd init
příkaz .
azd init --template javase-app-service-cosmos-redis-infra
Po zobrazení výzvy zadejte následující odpovědi:
Otázka | Odpověď |
---|---|
Aktuální adresář není prázdný. Chcete zde inicializovat projekt v adresáři<>? | Y |
Co chcete s těmito soubory dělat? | Zachovat stávající soubory beze změny |
Zadejte nový název prostředí. | Zadejte jedinečný název. Šablona AZD používá tento název jako součást názvu DNS vaší webové aplikace v Azure (<app-name>-<hash>.azurewebsites.net ). Jsou povoleny alfanumerické znaky a spojovníky. |
Přihlaste se k Azure spuštěním azd auth login
příkazu a následujícím příkazem:
azd auth login
Vytvořte potřebné prostředky Azure a pomocí příkazu nasaďte kód azd up
aplikace. Podle pokynů vyberte požadované předplatné a umístění prostředků Azure.
azd up
Dokončení azd up
příkazu trvá přibližně 15 minut (mezipaměť Redis trvá nejvíce času). Kód aplikace se také zkompiluje a nasadí, ale později kód upravíte tak, aby fungoval se službou App Service. Když je spuštěný, příkaz poskytuje zprávy o procesu zřizování a nasazení, včetně odkazu na nasazení v Azure. Po dokončení zobrazí příkaz také odkaz na aplikaci pro nasazení.
Tato šablona AZD obsahuje soubory (azure.yaml a adresář infrastruktury ), které ve výchozím nastavení generují zabezpečenou architekturu s následujícími prostředky Azure:
Máte problémy? Projděte si část Řešení potíží.
Šablona AZD, kterou použijete, vygenerovala proměnné připojení, které jste už použili jako nastavení aplikace, a vypíše je do terminálu, aby vám to vyhovuje. Nastavení aplikace je jedním ze způsobů, jak udržovat tajné kódy připojení mimo úložiště kódu.
Ve výstupu AZD vyhledejte nastavení spring.data.mongodb.uri
aplikace . Zobrazí se jenom názvy nastavení. Ve výstupu AZD vypadají takto:
App Service app has the following app settings: - spring.data.mongodb.uri - spring.data.mongodb.database - spring.redis.host - spring.redis.port - spring.redis.password - spring.redis.database - spring.redis.ssl - spring.cloud.azure.keyvault.secret.credential.managed_identity_enabled - spring.cloud.azure.keyvault.secret.endpoint - azure.keyvault.uri - azure.keyvault.scope
spring.data.mongodb.uri
obsahuje identifikátor URI připojení k databázi Cosmos DB v Azure. Jedná se o standardní proměnnou Spring Data, kterou vaše aplikace už používá v souboru src/main/resources/application.properties .
V průzkumníku přejděte na src/main/resources/application.properties a podívejte se, že aplikace Spring Boot už používá proměnnou spring.data.mongodb.uri
pro přístup k datům.
Pro usnadnění vašeho pohodlí se ve výstupu šablony AZD zobrazí přímý odkaz na stránku nastavení aplikace. Najděte odkaz a otevřete ho na nové kartě prohlížeče.
Pokud se podíváte na hodnotu spring.data.mongodb.uri
, měla by být @Microsoft.KeyVault(...)
, což znamená, že se jedná o odkaz na trezor klíčů, protože tajný klíč se spravuje v trezoru klíčů.
Máte problémy? Projděte si část Řešení potíží.
Ve výstupu AZD najděte adresu URL aplikace a přejděte na ni v prohlížeči. Adresa URL vypadá takto ve výstupu AZD:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: https://<app-name>-<hash>.azurewebsites.net/
Přidejte do seznamu několik úkolů.
Blahopřejeme, spouštíte webovou aplikaci ve službě Aplikace Azure Service se zabezpečeným připojením ke službě Azure Cosmos DB.
Máte problémy? Projděte si část Řešení potíží.
Aplikace Azure Služba může zaznamenávat protokoly konzoly, které vám pomůžou diagnostikovat problémy s aplikací. Pro usnadnění přístupu už šablona AZD povolila protokolování do místního systému souborů a odesílá protokoly do pracovního prostoru služby Log Analytics.
Ukázková aplikace obsahuje standardní příkazy protokolování Log4j, které demonstrují tuto funkci, jak je znázorněno v následujícím fragmentu kódu:
private static Logger logger = LoggerFactory.getLogger(TodoListController.class);
@Autowired
private TodoItemRepository todoItemRepository;
public TodoListController() {
}
/**
* HTTP GET
*/
@GetMapping(path = "/api/todolist/{index}", produces = {MediaType.APPLICATION_JSON_VALUE})
public TodoItem getTodoItem(@PathVariable("index") String index) {
logger.info("GET request access '/api/todolist/{}' path.", index);
return todoItemRepository.findById(index).get();
}
Ve výstupu AZD vyhledejte odkaz na streamování protokolů služby App Service a přejděte na něj v prohlížeči. Odkaz vypadá takto ve výstupu AZD:
Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream
Přečtěte si další informace o protokolování v aplikacích v Javě v řadě o povolení OpenTelemetry služby Azure Monitor pro .NET, Node.js, Python a aplikace v Javě.
Máte problémy? Projděte si část Řešení potíží.
Pokud chcete odstranit všechny prostředky Azure v aktuálním prostředí nasazení, spusťte azd down
a postupujte podle pokynů.
azd down
V závislosti na vybraném předplatném a oblasti se může zobrazit stav nasazení služby Azure Cosmos DB Conflict
s následující zprávou v podrobnostech o operaci:
Sorry, we are currently experiencing high demand in <region> region, and cannot fulfill your request at this time.
Příčinou chyby je pravděpodobně omezení předplatného pro oblast, kterou vyberete. Zkuste pro nasazení zvolit jinou oblast.
Pokud se místo aplikace seznamu úkolů zobrazí Hey, Java developers!
stránka, app Service pravděpodobně stále načítá aktualizovaný kontejner z nejnovějšího nasazení kódu. Počkejte několik minut a aktualizujte stránku.
Ceny vytvořených prostředků jsou následující:
Kontejner Java SE ve službě App Service už má síťové připojení ke službě Cosmos DB, ale neobsahuje žádné nástroje pro migraci ani jiné nástroje MongoDB. Máte několik možností:
Když jako příklad použijete automaticky vygenerovaný soubor pracovního postupu ze služby App Service, spustí se nové git push
sestavení a nasazení. Z místního klonu úložiště GitHub provedete požadované aktualizace a nasdílíte je na GitHub. Příklad:
git add .
git commit -m "<some-message>"
git push origin main
Viz Nastavení nasazení GitHub Actions z Centra nasazení.
Můžete si všimnout, že zobrazení chatu GitHub Copilot už pro vás bylo při vytváření prostoru kódu. Pro usnadnění práce zahrneme rozšíření chatu GitHub Copilot do definice kontejneru (viz .devcontainer/devcontainer.json). Potřebujete ale účet GitHub Copilot (k dispozici je 30denní bezplatná zkušební verze).
Několik tipů pro vás při komunikaci s GitHub Copilotem:
@workspace
. Další informace najdete na webu Use the @workspace agent.@workspace
) dokonce i tam, kde se mají změny provádět, ale změny za vás nesmí provádět. Je na vás přidat navrhované změny a otestovat je.Další informace o spouštění aplikací v Javě ve službě App Service najdete v příručce pro vývojáře.
Zjistěte, jak zabezpečit aplikaci pomocí vlastní domény a certifikátu.
Události
Vytváření inteligentních aplikací
17. 3. 21 - 21. 3. 10
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Modul
Deploy a Spring Boot app to Azure Container Apps - Training
In this module, you learn how to deploy a Spring Boot app to Azure Container Apps. You deploy a Spring Boot application to Azure Container Apps and maintain it using the built-in Java stack.
Certifikace
Microsoft Certified: Odborník pro vývojáře ve službě Azure Cosmos DB - Certifications
Vytvářejte efektivní dotazy, vytvářejte zásady indexování, spravujte a zřiďte prostředky v rozhraní SQL API a sadě SDK pomocí služby Microsoft Azure Cosmos DB.
Dokumentace
Rychlý start: Vytvoření aplikace v Javě ve službě Aplikace Azure Service - Azure App Service
Během několika minut nasaďte svou první službu Hello World v Javě do služby Aplikace Azure Service. Modul plug-in Webové aplikace Azure pro Maven usnadňuje nasazení aplikací v Javě.
Kurz: Linuxová aplikace v Javě se službou Tomcat a MySQL - Azure App Service
Zjistěte, jak získat aplikaci Tomcat řízenou daty ve službě Aplikace Azure Service s připojením k MySQL spuštěné v Azure.
Přehled služby Aplikace Azure - Azure App Service
Zjistěte, jak vám služba Aplikace Azure pomáhá vyvíjet a hostovat webové aplikace.