Sdílet prostřednictvím


Kurz: Vytvoření webové aplikace Java Spring Boot se službou Aplikace Azure Service v Linuxu a Azure Cosmos DB

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.

Snímek obrazovky aplikace Spring Boot, která ukládá data ve službě Cosmos DB

V tomto kurzu se naučíte:

  • Vytvořte zabezpečenou výchozí architekturu pro službu Aplikace Azure a Azure Cosmos DB pomocí rozhraní MongoDB API.
  • Zabezpečení tajných kódů připojení pomocí spravované identity a odkazů na Key Vault
  • Nasaďte ukázkovou aplikaci Spring Boot do služby App Service z úložiště GitHub.
  • Přístup k nastavení aplikace App Service v kódu aplikace
  • Proveďte aktualizace a znovu nasaďte kód aplikace.
  • Streamování diagnostických protokolů ze služby App Service
  • Správa aplikace na webu Azure Portal
  • Zřiďte stejnou architekturu a nasaďte ji pomocí Azure Developer CLI.
  • Optimalizujte svůj vývojový pracovní postup pomocí GitHub Codespaces a GitHub Copilotu.

Požadavky

  • Účet Azure s aktivním předplatným. Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
  • Účet GitHub. můžete jeden získat zdarma.
  • Znalost vývoje v Javě s frameworkem Spring
  • (Volitelné) Pokud chcete vyzkoušet GitHub Copilot, potřebujete účet GitHub Copilot. K dispozici je 30denní bezplatná zkušební verze.
  • Účet Azure s aktivním předplatným. Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
  • Nainstalované rozhraní příkazového řádku pro vývojáře Azure Pomocí Azure Cloud Shellu můžete postupovat podle kroků, protože už má nainstalované rozhraní příkazového řádku Azure Developer CLI.
  • Znalost vývoje v Javě s frameworkem Spring
  • (Volitelné) Pokud chcete vyzkoušet GitHub Copilot, potřebujete účet GitHub Copilot. K dispozici je 30denní bezplatná zkušební verze.

Přeskočit na konec

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

Spusťte ukázku

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 lze spustit v GitHub Codespace, 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:

  1. Přihlaste se k účtu GitHub.
  2. Přejděte na https://github.com/Azure-Samples/msdocs-spring-boot-mongodb-sample-app/fork.
  3. Zrušte výběr možnosti Kopírovat hlavní větev pouze. Chcete všechny větve.
  4. Vyberte Vytvořit fork.

Krok 2: Ve fork GitHubu:

  1. Vyberte hlavní>počáteční-no-infra pro počáteční větev. Tato větev obsahuje pouze ukázkový projekt a žádné soubory ani konfiguraci související s Azure.
  2. Vyberte Code>Vytvořit kódovací prostor na starter-no-infra. Nastavení codespace trvá několik minut.

Krok 3: V terminálu codespace:

  1. Spusťte mvn package spring-boot:run.
  2. Až se zobrazí oznámení 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.

Návod

Na GitHub Copilot se můžete informovat o tomto úložišti. Příklad:

  • @workspace Co tento projekt dělá?
  • @workspace Jak se aplikace připojuje k databázi?
  • @workspace Co dělá složka .devcontainer?

Máte problémy? Projděte si část Řešení potíží.

2. Vytvoření služby App Service a Cosmos DB

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:

  • Název webové aplikace. Používá se jako součást názvu DNS pro vaši aplikaci.
  • Oblast, ve které se má aplikace spouštět fyzicky v reálném světě. Používá se také jako součást názvu DNS pro vaši aplikaci.
  • Zásobník runtime pro aplikaci. Tady vyberete verzi Javy, kterou chcete použít pro svou aplikaci.
  • Plán hostování aplikace. Je to cenová úroveň, která zahrnuje sadu funkcí a kapacitu škálování vaší aplikace.
  • Skupina prostředků pro aplikaci. Skupina prostředků umožňuje seskupovat (v logickém kontejneru) všechny prostředky Azure potřebné pro aplikaci.

Přihlaste se k Azure Portal a podle těchto pokynů vytvořte prostředky služby Azure App Service.

Krok 1: Na webu Azure Portal:

  1. Do vyhledávacího panelu v horní části webu Azure Portal zadejte "databáze webové aplikace".
  2. Vyberte položku s popiskem Web App + Database pod nadpisem Marketplace . Můžete také přejít přímo do průvodce vytvořením.

Krok 2: Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.

  1. Skupina prostředků: Vyberte Vytvořit novou a použijte název msdocs-spring-cosmosdb-tutorial.
  2. Oblast: Libovolná oblast Azure, která je blízko vás.
  3. Název: msdocs-spring-cosmosdb-XYZ , kde XYZ je jakékoli tři náhodné znaky. Tento název musí být v rámci služby Azure jedinečný.
  4. Zásobník modulu runtime: Java 21.
  5. Stack webového serveru Java: Java SE (Embedded Web Server).
  6. Stroj: API Cosmos DB pro MongoDB Cosmos DB je plně spravovaná databáze NoSQL, relační a vektorová databáze jako služba v Azure.
  7. Plán hostování: Basic. Až budete připraveni, můžete zvýšit kapacitu na produkční cenovou úroveň.
  8. Vyberte Zkontrolovat a vytvořit.
  9. Po dokončení ověření vyberte Vytvořit.

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, a vytvoří se následující prostředky:

  • Skupina prostředků: Kontejner pro všechny vytvořené prostředky.
  • Plán služby App Service: Definuje výpočetní prostředky pro Službu App Service. Vytvoří se plán Linuxu na úrovni Basic .
  • App Service: Představuje vaši aplikaci a spouští se v plánu služby App Service.
  • Virtuální síť: Integrovaná s aplikací App Service a izoluje provoz back-endové sítě.
  • Azure Cosmos DB: Přístupná pouze z zákulisí svého privátního koncového bodu Na vašem databázovém účtu je vytvořena databáze pro vás.
  • Privátní koncové body: Přístupové body pro databázový server a Redis cache ve virtuální síti.
  • Privátní DNS zóny: Umožněte rozlišení DNS pro databázový server a mezipaměť Redis ve virtuální síti.

Máte problémy? Projděte si část Řešení potíží.

3. Zabezpečení tajných kódů připojení

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:

  1. V nabídce vlevo vyberte Nastavení > Proměnné prostředí.
  2. Vedle AZURE_COSMOS_CONNECTIONSTRING vyberte Zobrazit hodnotu. Tato připojovací řetězec umožňuje připojit se k databázi Cosmos DB zabezpečenou za privátním koncovým bodem. Tajný kód se ale uloží přímo v aplikaci App Service, což není nejlepší. Změníte to.

Krok 2: Vytvoření trezoru klíčů pro zabezpečenou správu tajných kódů

  1. Na horním panelu hledání zadejte "key vault" a pak vyberte Marketplace>Key Vault.
  2. Ve skupině prostředků vyberte msdocs-spring-cosmosdb-tutorial.
  3. Do názvu trezoru klíčů zadejte název, který se skládá jenom z písmen a číslic.
  4. Nastavte v Region ukázkové umístění jako skupinu prostředků.

Krok 3:

  1. Vyberte kartu Sítě.
  2. Zrušte výběr možnosti Povolit veřejný přístup.
  3. Vyberte Vytvořit privátní koncový bod.
  4. Ve skupině prostředků vyberte msdocs-spring-cosmosdb-tutorial.
  5. Do názvu trezoru klíčů zadejte název, který se skládá jenom z písmen a číslic.
  6. Nastavte v Region ukázkové umístění jako skupinu prostředků.
  7. V dialogovém okně v umístění vyberte stejné umístění jako vaše aplikace App Service.
  8. Ve skupině prostředků vyberte msdocs-spring-cosmosdb-tutorial.
  9. Do pole Název zadejte msdocs-spring-cosmosdb-XYZVaultEndpoint.
  10. Ve virtuální síti vyberte msdocs-spring-cosmosdb-XYZVnet.
  11. V podsíti, msdocs-spring-cosmosdb-XYZSubnet.
  12. Vyberte OK.
  13. Vyberte Zkontrolovat a vytvořit, poté Vytvořit. Počkejte na dokončení nasazení trezoru klíčů. Měla by se zobrazit informace o tom, že vaše nasazení je dokončené.

Krok 4:

  1. Na horním panelu hledání zadejte msdocs-spring-cosmosdb a pak prostředek služby App Service s názvem msdocs-spring-cosmosdb-XYZ.
  2. Na stránce App Service v nabídce vlevo vyberte Nastavení > Konektor služby. Konektor, který pro vás vytvořil průvodce vytvořením aplikace, už existuje.
  3. Zaškrtněte políčko vedle spojnice a pak vyberte Upravit.
  4. Na kartě Základy nastavte typ klienta na SpringBoot. Tato možnost pro vás vytvoří proměnné prostředí specifické pro Spring Boot.
  5. Vyberte kartu Ověřování.
  6. Vyberte Uložit tajný klíč ve službě Key Vault.
  7. V části Key Vault Connection vyberte Vytvořit nový. V horní části dialogového okna pro úpravy se otevře dialogové okno Vytvořit připojení .

Krok 5: V dialogovém okně Vytvořit připojení pro připojení ke službě Key Vault:

  1. Ve službě Key Vault vyberte trezor klíčů, který jste vytvořili dříve.
  2. Vyberte Zkontrolovat a vytvořit. Měli byste vidět, že spravovaná identita přiřazená systémem je nastavená na Vybraná.
  3. Po dokončení ověření vyberte Vytvořit.

Krok 6: Jste zpátky v dialogovém okně pro úpravy pro defaultConnector.

  1. Na kartě Ověřování počkejte na vytvoření konektoru pro trezor klíčů. Po dokončení se rozevírací seznam Připojení Key Vault automaticky vybere.
  2. Vyberte Další: Sítě.
  3. Aktivujte přístup k cílové službě výběrem Konfigurovat pravidla brány firewall. Pokud se zobrazí zpráva Bez privátního koncového bodu v cílové službě, ignorujte ji. Průvodce pro tvorbu aplikace již zabezpečil databázi Cosmos DB pomocí privátního koncového bodu.
  4. Zvolte Uložit. Počkejte, až se zobrazí oznámení o úspěšném dokončení aktualizace.

Krok 7: Ověření změn:

  1. Znovu vyberte Proměnné prostředí z nabídky vlevo.
  2. Ujistěte se, že nastavení aplikace spring.data.mongodb.uri existuje. Výchozí konektor ho pro vás vygeneroval a vaše aplikace Spring Boot už tuto proměnnou používá.
  3. Vedle nastavení aplikace vyberte Zobrazit hodnotu. Hodnota by měla být @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íží.

4. Nasazení ukázkového kódu

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>Deployment Center.

Krok 2: Na stránce Deployment Center:

  1. Ve zdroji vyberte GitHub. Ve výchozím nastavení je jako zprostředkovatel sestavení vybrán GitHub Actions .
  2. Přihlaste se ke svému účtu GitHub a postupujte podle pokynů k autorizaci Azure.
  3. V organizaci vyberte svůj účet.
  4. V úložišti vyberte msdocs-spring-boot-mongodb-sample-app.
  5. Ve větvi vyberte starter-no-infra. Jedná se o stejnou větev, ve které jste pracovali s ukázkovou aplikací bez jakýchkoli souborů nebo konfigurace souvisejících s Azure.
  6. Jako typ ověřování vyberte identitu přiřazenou uživatelem.
  7. V horní nabídce vyberte Uložit. App Service potvrdí soubor pracovního postupu do zvoleného úložiště GitHub v .github/workflows adresáři. Ve výchozím nastavení nasazovací centrum vytvoří uživatelskou identitu pro ověřování pracovního postupu pomocí 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:

  1. Vyberte kartu Protokoly. Podívejte se, že už proběhlo nové nasazení, ale stav je Neúspěšný.
  2. Vyberte Záznamy sestavení/nasazení. Otevře se záložka prohlížeče na záložku Akce vašeho forku úložiště na GitHubu. V poznámkách se zobrazí chyba 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):

  1. Začněte novou chatovací relaci výběrem zobrazení Chat a poté výběrem +.
  2. Zeptejte se, "@workspace Proč se mi v Akcích GitHubu zobrazuje chyba: Řetězec java21 není platný zápis SemVer pro verzi Javy." Copilot vám může poskytnout vysvětlení a dokonce vám dát odkaz na soubor pracovního postupu, který potřebujete opravit.
  3. V průzkumníkovi otevřete soubor .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml a proveďte navrženou opravu. GitHub Copilot vám pokaždé nedává stejnou odpověď, možná budete muset položit další otázky, abyste mohli doladit odpověď. Tipy najdete v tématu Co můžu dělat s GitHub Copilotem v kódu?.

Krok 5 (možnost 2: bez GitHub Copilotu):

  1. Otevřete soubor .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml v Průzkumníkovi a vyhledejte setup-java@v4 akci.
  2. Změňte hodnotu java-version na '21'.

Krok 6:

  1. Vyberte rozšíření Source Control.
  2. Do textového pole zadejte zprávu potvrzení, například Fix error in java-version. Nebo vyberte a nechte GitHub Copilot vygenerovat potvrzovací zprávu za vás.
  3. Vyberte Commit a poté potvrďte volbu stisknutím Ano.
  4. Vyberte Synchronizovat změny 1 a potvrďte OK.

Krok 7: Zpět na stránce Deployment Center na webu Azure Portal:

  1. Na kartě Protokoly vyberte Aktualizovat. Z vašich potvrzených změn už bylo zahájeno nové nasazení.
  2. V položce protokolu pro spuštění nasazení vyberte položku Sestavit/Nasadit protokoly s nejnovějším časovým razítkem.

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íží.

5. Přejděte do aplikace.

Krok 1: Na stránce služby App Service:

  1. V nabídce vlevo vyberte Přehled.
  2. Vyberte adresu URL aplikace.

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íží.

6. Streamování diagnostických protokolů

Azure App Service zachytává všechny zprávy vygenerované v konzoli, aby vám pomohla diagnostikovat problémy s vaší 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:

  1. V nabídce vlevo vyberte protokoly služby App Service.
  2. V části Protokolování aplikace vyberte Systém souborů.
  3. V horní nabídce vyberte Uložit.

Krok 2: V nabídce vlevo vyberte Log stream. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru.

Zjistěte více o protokolování v aplikacích Java v řadě o povolení Azure Monitor OpenTelemetry pro .NET, Node.js, Python a Java aplikace.

Máte problémy? Projděte si část Řešení potíží.

7. Vyčištění prostředků

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:

  1. Zadejte název skupiny prostředků.
  2. Vyberte tuto skupinu prostředků.

Krok 2: Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.

Krok 3:

  1. Potvrďte odstranění zadáním názvu skupiny prostředků.
  2. Vyberte Odstranit.
  3. Potvrďte akci Odstranit znovu.

2. Vytvoření prostředků Azure a nasazení ukázkové aplikace

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).

  1. Z kořenového adresáře spusťte příkaz azd init.

    azd init --template javase-app-service-cosmos-redis-infra
    
  2. Po zobrazení výzvy zadejte následující odpovědi:

    Otázka Odpověď
    Aktuální adresář není prázdný. Chcete zde inicializovat projekt v '<vašem 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.
  3. Přihlaste se k Azure spuštěním azd auth login příkazu a postupujte podle výzvy.

    azd auth login
    
  4. 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:

    • Skupina prostředků: Kontejner pro všechny vytvořené prostředky.
    • Plán služby App Service: Definuje výpočetní prostředky pro Službu App Service. Vytvoří se plán Linuxu na úrovni B1 .
    • App Service: Představuje vaši aplikaci a spouští se v plánu služby App Service.
    • Virtuální síť: Integrovaná s aplikací App Service a izoluje provoz back-endové sítě.
    • Účet služby Azure Cosmos DB s rozhraním MongoDB API: Přístupný pouze ze svého privátního koncového bodu. Na serveru se vytvoří databáze.
    • Azure Cache for Redis: Přístupná pouze z virtuální sítě.
    • Trezor klíčů: Přístupný pouze ze svého privátního koncového bodu. Slouží ke správě tajných kódů pro aplikaci App Service.
    • Privátní koncové body: Přístupové koncové body pro trezor klíčů, databázový server a mezipaměť Redis ve virtuální síti.
    • Privátní DNS zóny: Umožněte překlad DNS databáze Cosmos DB, mezipaměti Redis a trezoru klíčů ve virtuální síti.
    • Pracovní prostor Log Analytics: Slouží jako cílový kontejner pro vaši aplikaci k odesílání protokolů, kde je můžete také dotazovat.

Máte problémy? Projděte si část Řešení potíží.

3. Ověřte připojovací řetězce

Šablona AZD, kterou používáte, již vygenerovala proměnné pro připojení jako nastavení aplikace a vypíše je do terminálu pro vaše pohodlí. Nastavení aplikace je jedním ze způsobů, jak udržovat tajné kódy připojení mimo úložiště kódu.

  1. Ve výstupu AZD vyhledejte nastavení spring.data.mongodb.uriaplikace . 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 .

  2. 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.

  3. 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íží.

4. Přejděte do aplikace.

  1. 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: <URL>
     
  2. Přidejte do seznamu několik úkolů.

    Snímek obrazovky webové aplikace Tomcat se spuštěnou službou MySQL v Azure zobrazující úlohy

    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íží.

5. Streamování diagnostických protokolů

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: <URL>

Zjistěte více o protokolování v aplikacích Java v řadě o povolení Azure Monitor OpenTelemetry pro .NET, Node.js, Python a Java aplikace.

Máte problémy? Projděte si část Řešení potíží.

6. Vyčištění prostředků

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

Řešení problému

Zobrazení nasazení v portálu pro službu Azure Cosmos DB ukazuje konfliktní stav.

V závislosti na vybraném předplatném a oblasti se může zobrazit stav nasazení služby Azure Cosmos DB Conflicts 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.

Nasazená ukázková aplikace nezobrazuje modul seznamu úkolů.

Pokud se místo aplikace seznamu úkolů zobrazí Hey, Java developers! stránka, je velmi pravděpodobné, že App Service stále načítá aktualizovaný kontejner z nejnovějšího nasazení kódu. Počkejte několik minut a aktualizujte stránku.

Nejčastější dotazy

Kolik stojí toto nastavení?

Ceny vytvořených prostředků jsou následující:

  • Plán služby App Service se vytvoří na úrovni Basic a dá se vertikálně navýšit nebo snížit. Podívejte se na ceny služby App Service.
  • Účet služby Azure Cosmos DB se vytvoří v bezserverové úrovni a k této úrovni jsou přidružené malé náklady. Podívejte se na ceny služby Azure Cosmos DB.
  • Azure Cache for Redis se vytvoří na úrovni Basic s minimální velikostí mezipaměti. K této úrovni jsou spojené malé náklady. Kapacitu můžete vertikálně navýšit na vyšší úroveň výkonu pro vyšší dostupnost, clustering a další funkce. Podívejte se na ceny služby Azure Cache for Redis.
  • Za virtuální síť nevznikají náklady, pokud nenakonfigurujete další funkce, jako je propojování sítí. Podívejte se na ceny služby Azure Virtual Network.
  • Za privátní zónu DNS se účtují malé poplatky. Podívejte se na ceny Azure DNS.

Jak mohu provést migraci databáze v databázi Cosmos DB za virtuální sítí?

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í:

  • Spouštějte migrace databází automaticky při spuštění aplikace, jako je Hibernate nebo Flyway.
  • V relaci SSH aplikace nainstalujte nástroj pro migraci, jako je Flyway, a pak spusťte migrační skript. Mějte na paměti, že nainstalovaný nástroj nebude po restartování aplikace zachován, pokud není v adresáři /home .
  • Integrujte Azure Cloud Shell s virtuální sítí a spusťte migrace databází odtud.

Jak místní vývoj aplikací funguje s GitHub Actions?

Využitím automaticky vygenerovaného souboru pracovního postupu ze služby App Service jako příkladu, každý git push zahájí nové spuštění 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

Nemám oprávnění k vytvoření uživatelsky přiřazené identity

Viz Jak nastavit nasazení GitHub Actions z Centra nasazení.

Co můžu dělat s GitHub Copilotem v kódu?

Můžete si všimnout, že zobrazení chatu GitHub Copilot už bylo k dispozici, když jste vytvořili kódový prostor. 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:

  • V rámci jedné chatové relace otázky a odpovědi navzájem na sebe navazují a vy můžete upravit své otázky, aby zpřesnily odpověď, kterou získáte.
  • GitHub Copilot ve výchozím nastavení nemá přístup k žádnému souboru ve vašem úložišti. Pokud chcete položit otázky k souboru, otevřete ho nejprve v editoru.
  • Pokud chcete, aby GitHub Copilot měl při přípravě odpovědí přístup ke všem souborům v úložišti, začněte svou otázkou @workspace. Další informace najdete na webu Use the @workspace agent.
  • V chatové relaci může GitHub Copilot navrhovat změny a (s @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ší kroky

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.