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.
V tomto kurzu se dozvíte, jak vytvořit zabezpečenou Node.js aplikaci ve službě Azure App Service , která je připojená k databázi Azure Cosmos DB for MongoDB . Azure App Service poskytuje vysoce škálovatelnou službu hostování webů s automatickými opravami pomocí operačního systému Linux. Po dokončení máte aplikaci Express.js spuštěnou ve službě Azure App Service v Linuxu.
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 Node.js 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 si ho také zdarma získat.
- Znalost vývoje Express.js
- (Volitelné) Chcete-li 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 Express.js
- (Volitelné) Chcete-li 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-nodejs-mongodb-azure-sample-app
cd msdocs-nodejs-mongodb-azure-sample-app
azd init --template msdocs-nodejs-mongodb-azure-sample-app
azd up
Spusťte ukázku
Nastavte ukázkovou aplikaci řízenou daty jako výchozí bod. Ukázkové úložiště zahrnuje konfiguraci vývojového kontejneru. Vývojový kontejner má všechno, co potřebujete k vývoji aplikace. Zahrnuje databázi, mezipaměť a všechny proměnné prostředí, které ukázková aplikace potřebuje. Vývojový kontejner může běžet v GitHub Codespace, což znamená, že příklad můžete spustit na libovolném počítači s webovým prohlížečem.
Krok 1: V novém okně prohlížeče:
- Přihlaste se k účtu GitHub.
- Přejděte na https://github.com/Azure-Samples/msdocs-nodejs-mongodb-azure-sample-app/fork.
- Zrušte výběr Kopírovat pouze hlavní větev. Chcete všechny větve.
- Vyberte Vytvořit fork.
Krok 2: v GitHub forku:
- Pro startovací větev vyberte main>starter-no-infra. Tato větev obsahuje pouze ukázkový projekt a žádné soubory ani konfiguraci související s Azure.
- Vyberte Code>Vytvořit prostor pro kód na starter-no-infra. Nastavení codespace trvá několik minut.
Krok 3: V terminálu codespace:
- Spusťte
npm install && npm start. - Až se zobrazí oznámení
Your application running on port 3000 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 Express.js aplikaci, zadejte
Ctrl+C.
Návod
Na tento repository se můžete zeptat u GitHub Copilot. Příklad:
- @workspace Co tento projekt dělá?
- @workspace Co dělá složka .devcontainer?
Máte problémy? Projděte si část Řešení potíží.
Vytvoření služby App Service a Azure Cosmos DB
V tomto kroku vytvoříte prostředky Azure. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečení ve výchozím nastavení, které zahrnují App Service a Azure Cosmos DB pro MongoDB. Pro proces vytváření zadáte:
- Název webové aplikace. Je součástí názvu DNS vaší aplikace.
- Oblast, ve které se má aplikace fyzicky spouštět ve světě. Je také součástí názvu DNS vaší aplikace.
- Zásobník modulu runtime pro aplikaci. Tady vyberete verzi Node, kterou chcete pro svou aplikaci použít.
- 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 do Azure portálu a následujte tyto kroky pro vytvoření vašich služeb v Azure App Service.
Krok 1: Na webu Azure Portal:
- Do vyhledávacího panelu v horní části webu Azure Portal zadejte "databáze webové aplikace".
- Vyberte položku s popiskem Web App + Database pod nadpisem Marketplace . Můžete také přejít přímo na Vytvořit webovou aplikaci a databázi .
Krok 2: Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.
- Grupa zdrojů: Vyberte Vytvořit nový a použijte název msdocs-expressjs-mongodb-tutorial.
- Oblast: Libovolná oblast Azure, která je blízko vás.
- Název: msdocs-expressjs-mongodb-XYZ, kde XYZ je jakékoli tři náhodné znaky.
- Zásobník modulu runtime: Node 24 LTS.
- Jádro: Rozhraní API služby Cosmos DB pro MongoDB Azure Cosmos DB je nativní cloudová databáze s 100% kompatibilním rozhraním API MongoDB. Poznamenejte si název databáze, který je pro vás vygenerovaný (<).> Budete ho totiž potřebovat později.
- Plán hostování: Basic. Až budete připraveni, můžete přejít na cenovou úroveň pro produkční prostředí.
- Vyberte Zkontrolovat a vytvořit.
- Po dokončení ověření vyberte Vytvořit.
Krok 3: Dokončení nasazení trvá několik minut. Po dokončení nasazení vyberte Přejít k prostředku. Přejdete přímo do aplikace App Service. 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 služby App Service. Vytvoří se plán Linuxu na úrovni Basic .
- → App Service Představuje vaši aplikaci a běží v plánu služby App Service.
- Virtuální síť → integrovaná s aplikací App Service a izoluje back-endový síťový provoz.
- Privátní koncový bod přístupu k prostředku databáze ve virtuální síti.
- Síťové rozhraní → Představuje privátní IP adresu privátního koncového bodu.
- Služba Azure Cosmos DB pro MongoDB → přístupná pouze z zákulisí privátního koncového bodu. Databáze a uživatel se pro vás vytvoří na serveru.
- Privátní DNS zóna → Umožňuje řešení DNS serveru Azure Cosmos DB ve virtuální síti.
Máte problémy? Projděte si část Řešení potíží.
Zabezpečené tajné kódy připojení
Nasazení vygenerovalo připojovací řetězec pro vás už jako nastavení aplikace. Osvědčeným postupem zabezpečení je ale úplné zachování tajných kódů mimo službu App Service. Přesuňte tajné kódy do trezoru klíčů a změň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:
- V nabídce vlevo vyberte Nastavení > Proměnné prostředí.
- Vedle AZURE_COSMOS_CONNECTIONSTRING vyberte Zobrazit hodnotu. Tento připojovací řetězec vám umožňuje připojit se k databázi Cosmos DB zabezpečené za soukromým koncovým bodem. Tajný kód se uloží přímo v aplikaci App Service, což není nejlepší. Tuto konfiguraci změníte.
Krok 2: Vytvoření trezoru klíčů pro zabezpečenou správu tajných kódů
- Na horním panelu hledání zadejte trezor klíčů a pak vyberte Marketplace>Key Vault.
- Ve Skupině prostředků vyberte msdocs-expressjs-mongodb-tutorial.
- Do názvu trezoru klíčů zadejte název, který se skládá jenom z písmen a číslic.
- V oblasti nastavte ukázkové umístění jako místo pro skupinu prostředků.
Krok 3:
- Vyberte kartu Sítě.
- Zrušte výběr možnosti Povolit veřejný přístup.
- Vyberte Vytvořit privátní koncový bod.
- Ve Skupině prostředků vyberte msdocs-expressjs-mongodb-tutorial.
- Do názvu trezoru klíčů zadejte název, který se skládá jenom z písmen a číslic.
- V umístění nastavte ukázkové umístění jako skupinu prostředků.
- V dialogovém okně v umístění vyberte stejné umístění jako vaše aplikace App Service.
- Ve skupině prostředků vyberte skupinu prostředků, například msdocs-expressjs-mongodb-tutorial.
- Do pole Název zadejte název, například msdocs-expressjs-mongodb-VaultEndpoint.
- Ve virtuální síti vyberte msdocs-expressjs-mongodbVnet.
- V podsíti vyberte msdocs-expressjs-mongodb-XYZSubnet.
- Vyberte OK.
- Vyberte Zkontrolovat a vytvořit, poté vyberte Vytvořit. Počkejte na dokončení nasazení trezoru klíčů. Měli byste vidět Vaše nasazení je dokončené.
Krok 4:
- Na horním panelu hledání zadejte msdocs-expressjs-mongodb a pak prostředek služby App Service s názvem msdocs-expressjs-mongodb.
- Na stránce služby App Service v nabídce vlevo vyberteKonektor služby>. Konektor, který pro vás vytvořil průvodce vytvořením aplikace, už existuje.
- Zaškrtněte políčko vedle spojnice a pak vyberte Upravit.
- Na kartě Základy nastavte typ klienta na Node.js.
- Vyberte kartu Ověřování.
- Vyberte Uložit tajný klíč ve službě Key Vault.
- V části Připojení ke službě Key Vault 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:
- Ve službě Key Vault vyberte trezor klíčů, který jste vytvořili dříve.
- Vyberte Zkontrolovat a vytvořit. Měli byste vidět, že spravovaná identita přiřazená systémem je nastavená na Vybraná.
- Po dokončení ověření vyberte Vytvořit.
Krok 6: Jste zpátky v dialogovém okně pro úpravy pro defaultConnector.
- Na kartě Ověřování počkejte na vytvoření konektoru trezoru klíčů. Po dokončení se rozevírací seznam Připojení ke službě Key Vault automaticky zvolí.
- Vyberte Další: Sítě.
- Výběrem Konfigurovat pravidla brány firewall povolíte přístup k cílové službě. Pokud se zobrazí zpráva Bez privátního koncového bodu v cílové službě, ignorujte ji. Proces vytváření aplikace již zabezpečil databázi Cosmos DB pomocí privátního koncového bodu.
- Zvolte Uložit. Počkejte, až se objeví nápis aktualizace úspěšná.
Krok 7: Ověření změn:
- V nabídce vlevo znovu vyberte Proměnné prostředí.
- Vedle nastavení aplikace AZURE_COSMOS_CONNECTIONSTRING vyberte Zobrazit hodnotu. Hodnota by měla být
@Microsoft.KeyVault(...), což znamená, že se jedná o odkaz na trezor klíčů. Tajný klíč se teď spravuje v trezoru klíčů.
Máte problémy? Projděte si část Řešení potíží.
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 Nastavení> a poté Centrum nasazení.
Krok 2: Na stránce Deployment Center :
- Ve zdroji vyberte GitHub. Ve výchozím nastavení je jako zprostředkovatel sestavení vybrán GitHub Actions .
- Přihlaste se ke svému účtu GitHub a postupujte podle pokynů k autorizaci Azure.
- V organizaci vyberte svůj účet.
- V úložišti vyberte msdocs-nodejs-mongodb-azure-sample-app.
- Ve větvi vyberte starter-no-infra. Tato větev je stejná jako ta, ve které jste pracovali s ukázkovou aplikací bez jakýchkoli souborů nebo konfigurace souvisejících s Azure.
- Jako typ ověřování vyberte identitu přiřazenou uživatelem.
- V horní nabídce vyberte Uložit. App Service potvrdí soubor pracovního postupu do zvoleného úložiště GitHub v
.github/workflowsadresáři. Ve výchozím nastavení nasazovací centrum vytvoří uživatelsky přiřazenou identitu aby pracovní postup ověřil pomocí Microsoft Entra (OIDC ověřování). Alternativní možnosti ověřování najdete v tématu Nasazení do služby App Service pomocí GitHub Actions.
Krok 3: Zpět v prostoru kódu GitHubu ukázkového forku spusťte git pull origin starter-no-infra.
Tento příkaz načte nově potvrzený soubor pracovního postupu do vašeho prostoru kódu.
Krok 4 (možnost 1: s GitHub Copilotem):
- Začněte novou chatovací relaci výběrem možnosti Chat a pak výběrem +.
- Zeptejte se, "@workspace Jak se aplikace připojuje k databázi?" Copilot vás může nasměrovat na soubor app.js a
mongoose.connectvolání. - Řekněme, že v Azure mám proměnnou připojovacího řetězce s názvem AZURE_COSMOS_CONNECTIONSTRING. Copilot vám může dát návrh kódu podobný návrhu v možnosti 2: bez kroků GitHub Copilot a dokonce vám říct, že chcete provést změnu v app.js.
- Otevřete app.js v průzkumníku a přidejte návrh kódu do metody
getApp. GitHub Copilot vám pokaždé nedává stejnou odpověď. Možná budete muset položit další otázky, abyste vyladili jeho odpověď. Tipy najdete v tématu Co můžu dělat s GitHub Copilotem v kódu?.
Krok 4 (možnost 2: bez GitHub Copilotu):
- V průzkumníku otevřete app.js.
- Najděte řádek, kde
mongoose.connectje volána (řádek 16) a změňteprocess.env.MONGODB_URInaprocess.env.AZURE_COSMOS_CONNECTIONSTRING || process.env.MONGODB_URI.
Krok 5:
- Vyberte rozšíření Správce verzí.
- Do textového pole zadejte zprávu potvrzení, například
Update environment variable. Nebo vyberte
a nechte GitHub Copilot vygenerovat potvrzovací zprávu za vás. - Vyberte Commit a poté potvrďte stisknutím Ano.
- Vyberte Synchronizovat změny 1 a potvrďte OK.
Krok 6: Zpět na stránce Deployment Center na webu Azure Portal:
- Na kartě Protokoly vyberte Aktualizovat. Z vašich potvrzených změn už je spuštěno nové nasazení.
- V položce protokolu pro spuštění nasazení vyberte položku Sestavit/Nasadit protokoly s nejnovějším časovým razítkem.
Krok 7: Přejdete do úložiště GitHub a zjistíte, že je spuštěná akce GitHubu. Soubor pracovního postupu definuje dvě 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íží.
Přechod do aplikace
Krok 1: Na stránce služby App Service:
- V nabídce vlevo vyberte Přehled.
- Vyberte adresu URL aplikace.
Krok 2: Přidejte do seznamu několik úkolů. Blahopřejeme, ve službě Aplikace Azure Service spouštíte zabezpečenou aplikaci Node.js řízenou daty.
Přenášet diagnostické protokoly
Aplikace Azure Služba zaznamenává všechny zprávy protokolované do konzoly, aby vám pomohla při diagnostice problémů s vaší aplikací. Ukázková aplikace vypíše zprávy protokolu konzoly ve všech jejích koncových bodech, aby tuto funkci ukázala. Koncový bod například get vypíše zprávu o počtu úloh načtených z databáze a zobrazí se chybová zpráva, pokud se něco nepovede.
router.get('/', function(req, res, next) {
Task.find()
.then((tasks) => {
const currentTasks = tasks.filter(task => !task.completed);
const completedTasks = tasks.filter(task => task.completed === true);
console.log(`Total tasks: ${tasks.length} Current tasks: ${currentTasks.length} Completed tasks: ${completedTasks.length}`)
res.render('index', { currentTasks: currentTasks, completedTasks: completedTasks });
})
.catch((err) => {
console.log(err);
res.send('Sorry! Something went wrong.');
});
});
Krok 1: Na stránce služby App Service:
- V nabídce vlevo vyberte protokoly služby App Service.
- V části Protokolování aplikace vyberte Systém souborů.
- V horní nabídce vyberte Uložit.
Krok 2: V nabídce vlevo vyberte Tok protokolu. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru.
Kontrola nasazených souborů pomocí Kudu
Azure App Service poskytuje webovou konzolu diagnostiky s názvem Kudu. Konzola umožňuje prozkoumat hostitelské prostředí serveru pro vaši webovou aplikaci. Pomocí Kudu můžete zobrazit soubory nasazené do Azure, zkontrolovat historii nasazení aplikace a dokonce otevřít relaci SSH do hostitelského prostředí.
Krok 1: Na stránce služby App Service:
- V nabídce vlevo vyberteRozšířené nástroje>pro vývoj.
- Vyberte Přejít.
Krok 2: Na stránce Kudu vyberte Nasazení.
Pokud nasadíte kód do služby App Service pomocí gitu nebo nasazení pomocí zipu, zobrazí se historie nasazení webové aplikace.
Krok 3: Vraťte se na domovskou stránku Kudu a vyberte Web wwwroot.
Uvidíte nasazenou strukturu složek a vyberete procházení a zobrazení souborů.
Vyčistěte zdroje
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:
- Zadejte název skupiny prostředků.
- Vyberte tuto skupinu prostředků.
Krok 2: Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.
Krok 3:
- Pro potvrzení odstranění zadejte název skupiny prostředků.
- Vyberte Odstranit.
Vytvoření prostředků Azure a nasazení ukázkové aplikace
V této části vytvoříte prostředky Azure a nasadíte ukázkovou aplikaci do služby 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 příkaz
azd init.azd init --template nodejs-app-service-cosmos-redis-infraPo zobrazení výzvy zadejte následující odpovědi:
Otázka Odpověď Aktuální adresář není prázdný. Chcete inicializovat projekt zde v <your-directory>?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 příkazu
azd auth logina podle pokynů.azd auth loginVytvořte potřebné prostředky Azure a pomocí příkazu nasaďte kód
azd upaplikace. Podle pokynů vyberte požadované předplatné a umístění prostředků Azure.azd upDokončení
azd uppříkazu trvá přibližně 15 minut. Mezipaměť Redis trvá nejvíce času. Příkaz také zkompiluje a nasadí kód aplikace. Později kód upravíte tak, aby fungoval se službou App Service.Příkaz během spuštění 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 pro vás 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: Povolte vyřešení DNS pro databázi Cosmos DB, mezipaměť Redis a trezor klíčů ve virtuální síti.
- Pracovní prostor Log Analytics: Slouží jako cílový kontejner pro vaši aplikaci k odesílání protokolů, které lze následně dotazovat.
Jakmile příkaz dokončí vytváření prostředků a nasazení kódu aplikace poprvé, nasazená ukázková aplikace ještě nefunguje. Pokud se chcete připojit k databázi v Azure, musíte provést malé změny.
Ověření připojovacích řetězců
Šablona AZD, kterou používáte, již vygenerovala proměnné připojení jako nastavení aplikace a vypisuje 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.
Ve výstupu AZD vyhledejte nastavení
AZURE_COSMOS_CONNECTIONSTRINGaplikace . Zobrazí se jenom názvy nastavení. Ve výstupu AZD vypadají takto:App Service app has the following app settings: - AZURE_COSMOS_CONNECTIONSTRING - AZURE_REDIS_CONNECTIONSTRING - AZURE_KEYVAULT_RESOURCEENDPOINT - AZURE_KEYVAULT_SCOPEAZURE_COSMOS_CONNECTIONSTRINGobsahuje připojovací řetězec do databáze Cosmos DB v Azure. Později ho budete muset použít ve svém kódu.Šablona AZD ukazuje přímý odkaz na stránku nastavení aplikace. Najděte odkaz a otevřete ho na nové kartě prohlížeče.
Máte problémy? Projděte si část Řešení potíží.
Úprava vzorového kódu a opětovné nasazení
V Codespace GitHubu spusťte novou chatovací relaci kliknutím na Chat zobrazení, poté klikněte na +.
Zeptej se @workspace, jak se aplikace připojuje k databázi? Copilot vás může nasměrovat na soubor app.js a volání
mongoose.connect.Řekněme, že v Azure mám proměnnou připojovacího řetězce s názvem AZURE_COSMOS_CONNECTIONSTRING. Copilot vám může dát návrh kódu podobný návrhu v možnosti 2: bez kroků GitHub Copilotu a dokonce vám říct, abyste udělali změnu v app.js.
Otevřete app.js v průzkumníku a přidejte návrh kódu do metody
getApp.GitHub Copilot vám pokaždé nedává stejnou odpověď. Možná budete muset položit další otázky, abyste vyladili jeho odpověď. Tipy najdete v tématu Co můžu dělat s GitHub Copilotem v kódu?.
Zpět v terminálu codespace spusťte
azd deploypříkaz .azd deploy
Návod
Můžete také vždy použít azd up, což zahrnuje všechny azd package, azd provision a azd deploy.
Máte problémy? Projděte si část Řešení potíží.
Přechod do aplikace
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>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íží.
Přenášet diagnostické protokoly
Aplikace Azure Služba zaznamenává všechny zprávy protokolované do konzoly, aby vám pomohla při diagnostice problémů s vaší aplikací. Ukázková aplikace vypíše zprávy protokolu konzoly ve všech jejích koncových bodech, aby tuto funkci ukázala. Koncový bod například get vypíše zprávu o počtu úloh načtených z databáze a zobrazí se chybová zpráva, pokud se něco nepovede.
router.get('/', function(req, res, next) {
Task.find()
.then((tasks) => {
const currentTasks = tasks.filter(task => !task.completed);
const completedTasks = tasks.filter(task => task.completed === true);
console.log(`Total tasks: ${tasks.length} Current tasks: ${currentTasks.length} Completed tasks: ${completedTasks.length}`)
res.render('index', { currentTasks: currentTasks, completedTasks: completedTasks });
})
.catch((err) => {
console.log(err);
res.send('Sorry! Something went wrong.');
});
});
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>
Přečtěte si další informace o protokolování v aplikacích Java v sérii o povolení služby Azure Monitor OpenTelemetry pro .NET, Node.js, Python a Java aplikacích.
Máte problémy? Projděte si část Řešení potíží.
Vyčistěte zdroje
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í portálu pro službu Azure Cosmos DB zobrazuje konfliktní stav.
- Na stránce prohlížeče nasazené aplikace se zobrazuje zpráva "Něco se nepovedlo".
Zobrazení portálu pro službu Azure Cosmos DB ukazuje stav konfliktu.
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.
Na stránce prohlížeče nasazené aplikace se zobrazuje zpráva "Něco se nepovedlo".
Pravděpodobně stále potřebujete provést změny připojovacího řetězce ve vašem aplikačním kódu. Viz Nasazení ukázkového kódu.
Nejčastější dotazy
- Kolik stojí toto nastavení?
- Jak se mohu připojit k serveru Azure Cosmos DB, který je zabezpečený za virtuální sítí, pomocí jiných nástrojů?
- Jak místní vývoj aplikací funguje s GitHub Actions?
- Proč je nasazení GitHub Actions tak pomalé?
- Nemám oprávnění k vytvoření identity přiřazené uživatelem
- Co můžu dělat s GitHub Copilotem v kódu?
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.
- Server Azure Cosmos DB se vytvoří v jedné oblasti a dá se distribuovat do jiných oblastí. Podívejte se na ceny služby Azure Cosmos DB.
- Za virtuální síť se neúčtují poplatky, pokud nenakonfigurujete další funkce, jako je propojení 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 se připojím k serveru Azure Cosmos DB, který je zabezpečený za virtuální sítí, pomocí dalších nástrojů?
- Pro základní přístup můžete spustit příkaz
mongoshz terminálu SSH aplikace. Kontejner aplikace není součástímongosh, takže ho musíte nainstalovat ručně. Mějte na paměti, že nainstalovaný klient se při restartování aplikace neuchová. - Pokud se chcete připojit z klienta grafického uživatelského rozhraní MongoDB, musí být váš počítač ve virtuální síti. Může to být například virtuální počítač Azure, který je připojený k jedné z podsítí, nebo počítač v místní síti, který má připojení VPN typu site-to-site s virtuální sítí Azure.
- Pokud se chcete připojit z prostředí MongoDB ze stránky pro správu Azure Cosmos DB na webu Azure Portal, musí být váš počítač také ve virtuální síti. Místo toho můžete otevřít bránu firewall serveru Azure Cosmos DB pro IP adresu místního počítače, ale zvyšuje prostor pro útok pro vaši konfiguraci.
Jak místní vývoj aplikací funguje s GitHub Actions?
Jako příklad vezměte automaticky vygenerovaný soubor pracovního postupu ze služby App Service a každý git push spustí nové sestavení a nasazení. Z místního klonu úložiště GitHub provedete požadované aktualizace, které následně pošlete na GitHub. Příklad:
git add .
git commit -m "<some-message>"
git push origin main
Proč je nasazení GitHub Actions tak pomalé?
Automaticky vygenerovaný soubor pracovního postupu ze služby App Service definuje běh sestavení a nasazení se dvěma úlohami. Vzhledem k tomu, že každá úloha běží ve vlastním čistém prostředí, soubor pracovního postupu zajistí, že deploy má úloha přístup k souborům build z úlohy:
- Na konci
buildúlohy nahrajte soubory jako artefakty. - Na začátku
deployúlohy stáhněte artefakty.
Většina času v procesu dvou úloh je věnována nahrávání a stahování artefaktů. Pokud chcete, můžete soubor pracovního postupu zjednodušit tím, že zkombinujete dvě úlohy do jedné, což eliminuje potřebu kroků pro nahrávání a stahování.
Nemám oprávnění k vytvoření identity, kterou přiřadil uživatel
Viz Nastavení nasazení GitHub Actions z Centra nasazení.
Co můžu dělat s GitHub Copilotem v kódu?
Možná si všimnete, že chat GitHub Copilot byl již připraven při vytvoření codespace. 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 na sebe otázky a odpovědi navazují a 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 také
@workspacenaznačit, kde tyto změny provést, ale změny za vás nesmí provádět. Je na vás přidat navrhované změny a otestovat je.
Tady je několik dalších věcí, které můžete říct k vyladění odpovědi, kterou získáte:
- @workspace Kde je definován MONGODB_URI?
- Ve kterém souboru provedem změnu?
- Přeruší tato změna aplikaci při místním spuštění?