Självstudie: Skapa en Java Spring Boot-webbapp med Azure App Service på Linux och Azure Cosmos DB
I den här självstudien får du lära dig hur du skapar, konfigurerar och distribuerar ett säkert Spring Boot-program i Azure App Service som ansluter till en MongoDB-databas i Azure (faktiskt en Cosmos DB-databas med MongoDB API). När du är klar har du ett Java SE-program som körs på Azure App Service på Linux.
I den här självstudien lär du dig att:
- Skapa en säker arkitektur som standard för Azure App Service och Azure Cosmos DB med MongoDB API.
- Skydda anslutningshemligheter med hjälp av en hanterad identitet och Key Vault-referenser.
- Distribuera en Spring Boot-exempelapp till App Service från en GitHub-lagringsplats.
- Åtkomst till App Service-appinställningar i programkoden.
- Gör uppdateringar och distribuera om programkoden.
- Strömma diagnostikloggar från App Service.
- Hantera appen i Azure Portal.
- Etablera samma arkitektur och distribuera med hjälp av Azure Developer CLI.
- Optimera ditt utvecklingsarbetsflöde med GitHub Codespaces och GitHub Copilot.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Om du inte har ett Azure-konto kan du skapa ett kostnadsfritt.
- Ett GitHub-konto. du kan också få en gratis.
- Kunskaper om Java med Spring Framework-utveckling.
- (Valfritt) Prova GitHub Copilot, ett GitHub Copilot-konto. Det finns en kostnadsfri utvärderingsversion på 30 dagar.
- Ett Azure-konto med en aktiv prenumeration. Om du inte har ett Azure-konto kan du skapa ett kostnadsfritt.
- Azure Developer CLI installerat. Du kan följa stegen med Azure Cloud Shell eftersom Azure Developer CLI redan är installerat.
- Kunskaper om Java med Spring Framework-utveckling.
- (Valfritt) Prova GitHub Copilot, ett GitHub Copilot-konto. Det finns en kostnadsfri utvärderingsversion på 30 dagar.
Hoppa till slutet
Du kan snabbt distribuera exempelappen i den här självstudien och se den köras i Azure. Kör bara följande kommandon i Azure Cloud Shell och följ anvisningarna:
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
1. Kör exemplet
Först konfigurerar du en exempeldatadriven app som utgångspunkt. Exempellagringsplatsen innehåller för enkelhetens skull en konfiguration av utvecklingscontainer. Utvecklingscontainern har allt du behöver för att utveckla ett program, inklusive MongoDB-databasen, cachen och alla miljövariabler som behövs av exempelprogrammet. Utvecklingscontainern kan köras i ett GitHub-kodområde, vilket innebär att du kan köra exemplet på valfri dator med en webbläsare.
Steg 1: I ett nytt webbläsarfönster:
- Logga in på ditt GitHub-konto.
- Navigera till https://github.com/Azure-Samples/msdocs-spring-boot-mongodb-sample-app/fork.
- Avmarkera Kopiera endast huvudgrenen. Du vill ha alla grenar.
- Välj Skapa förgrening.
Steg 2: I GitHub-förgreningen:
- Välj main>starter-no-infra för startgrenen. Den här grenen innehåller bara exempelprojektet och inga Azure-relaterade filer eller konfigurationer.
- Välj Kod>Skapa kodområde på starter-no-infra. Det tar några minuter att konfigurera kodområdet.
Steg 3: I kodområdesterminalen:
- Kör
mvn package spring-boot:run
. - När du ser meddelandet
Your application running on port 8080 is available.
väljer du Öppna i webbläsare. Du bör se exempelprogrammet på en ny webbläsarflik. Om du vill stoppa Jetty-servern skriver duCtrl
+C
.
Dricks
Du kan fråga GitHub Copilot om den här lagringsplatsen. Till exempel:
- @workspace Vad gör det här projektet?
- @workspace Hur ansluter appen till databasen?
- @workspace Vad gör mappen .devcontainer?
Har du problem? Kontrollera felsökningsavsnittet.
2. Skapa App Service och Cosmos DB
Först skapar du Azure-resurserna. Stegen som används i den här självstudien skapar en uppsättning säkra som standardresurser som inkluderar App Service och Azure Cosmos DB. För skapandeprocessen anger du:
- Webbappens namn . Den används som en del av DNS-namnet för din app i form av
https://<app-name>-<hash>.<region>.azurewebsites.net
. - Regionen som ska köra appen fysiskt i världen. Den används också som en del av DNS-namnet för din app.
- Runtime-stacken för appen. Det är där du väljer vilken version av Java som ska användas för din app.
- Värdplanen för appen. Det är prisnivån som innehåller uppsättningen funktioner och skalningskapacitet för din app.
- Resursgruppen för appen. Med en resursgrupp kan du gruppera (i en logisk container) alla Azure-resurser som behövs för programmet.
Logga in på Azure Portal och följ dessa steg för att skapa dina Azure App Service-resurser.
Steg 1: I Azure Portal:
- Ange "webbappdatabas" i sökfältet överst i Azure Portal.
- Välj objektet webapp + databas under rubriken Marketplace . Du kan också navigera till guiden för att skapa direkt.
Steg 2: På sidan Skapa webbapp + databas fyller du i formuläret på följande sätt.
- Resursgrupp: Välj Skapa ny och använd namnet msdocs-spring-cosmosdb-tutorial.
- Region: Alla Azure-regioner nära dig.
- Namn: msdocs-spring-cosmosdb-XYZ där XYZ är tre slumpmässiga tecken. Användarnamnet måste vara unikt inom Azure.
- Körningsstack: Java 21.
- Java-webbserverstack: Java SE (Embedded Web Server).
- Motor: Cosmos DB API för MongoDB. Cosmos DB är en fullständigt hanterad NoSQL-, relations- och vektordatabas som en tjänst i Azure.
- Värdplan: Basic. När du är klar kan du skala upp till en prisnivå för produktion.
- Välj Granska + skapa.
- När valideringen är klar väljer du Skapa.
Steg 3: Distributionen tar några minuter att slutföra. När distributionen är klar väljer du knappen Gå till resurs . Du tas direkt till App Service-appen, men följande resurser skapas:
- Resursgrupp: Containern för alla skapade resurser.
- App Service-plan: Definierar beräkningsresurserna för App Service. En Linux-plan på Basic-nivån skapas.
- App Service: Representerar din app och körs i App Service-planen.
- Virtuellt nätverk: Integrerat med App Service-appen och isolerar serverdelsnätverkstrafik.
- Azure Cosmos DB: Endast tillgänglig bakom den privata slutpunkten. En databas skapas åt dig på databaskontot.
- Privata slutpunkter: Åtkomstslutpunkter för databasservern och Redis-cachen i det virtuella nätverket.
- Privat DNS zoner: Aktivera DNS-matchning för databasservern och Redis-cachen i det virtuella nätverket.
Har du problem? Kontrollera felsökningsavsnittet.
3. Skydda anslutningshemligheter
Guiden för att skapa genererade anslutningssträngen åt dig redan som en appinställning. Bästa praxis för säkerhet är dock att hålla hemligheter borta från App Service helt. Du flyttar dina hemligheter till ett nyckelvalv och ändrar appinställningen till en Key Vault-referens med hjälp av Service Connectors.
Steg 1: På App Service-sidan:
- I den vänstra menyn väljer du Inställningar > Miljövariabler.
- Bredvid AZURE_COSMOS_CONNECTIONSTRING väljer du Visa värde. Med den här anslutningssträng kan du ansluta till Cosmos DB-databasen som skyddas bakom en privat slutpunkt. Hemligheten sparas dock direkt i App Service-appen, vilket inte är det bästa. Du ändrar det här.
Steg 2: Skapa ett nyckelvalv för säker hantering av hemligheter.
- I det övre sökfältet skriver du "key vault" och väljer sedan Marketplace>Key Vault.
- I Resursgrupp väljer du msdocs-spring-cosmosdb-tutorial.
- I Key Vault-namn skriver du ett namn som endast består av bokstäver och siffror.
- I Region anger du den till exempelplatsen som resursgrupp.
Steg 3:
- Välj fliken Nätverk.
- Avmarkera Aktivera offentlig åtkomst.
- Välj Skapa en privat slutpunkt.
- I Resursgrupp väljer du msdocs-spring-cosmosdb-tutorial.
- I Key Vault-namn skriver du ett namn som endast består av bokstäver och siffror.
- I Region anger du den till exempelplatsen som resursgrupp.
- I dialogrutan i Plats väljer du samma plats som din App Service-app.
- I Resursgrupp väljer du msdocs-spring-cosmosdb-tutorial.
- I Namn skriver du msdocs-spring-cosmosdb-XYZVaultEndpoint.
- I Virtuellt nätverk väljer du msdocs-spring-cosmosdb-XYZVnet.
- I undernätet msdocs-spring-cosmosdb-XYZSubnet.
- Välj OK.
- Välj Granska + skapa och välj sedan Skapa. Vänta tills key vault-distributionen är klar. Du bör se "Distributionen är klar".
Steg 4:
- I det övre sökfältet skriver du msdocs-spring-cosmosdb och sedan App Service-resursen msdocs-spring-cosmosdb-XYZ.
- På sidan App Service går du till den vänstra menyn och väljer Inställningar > Tjänstanslutning. Det finns redan en anslutningsapp som guiden för att skapa appen har skapats åt dig.
- Markera kryssrutan bredvid anslutningsappen och välj sedan Redigera.
- På fliken Grundläggande anger du Klienttyp till SpringBoot. Det här alternativet skapar spring boot-specifika miljövariabler åt dig.
- Markera fliken autentisering.
- Välj Lagra hemlighet i Key Vault.
- Under Key Vault-anslutning väljer du Skapa ny. Dialogrutan Skapa anslutning öppnas ovanpå redigeringsdialogrutan.
Steg 5: I dialogrutan Skapa anslutning för Key Vault-anslutningen:
- I Key Vault väljer du det nyckelvalv som du skapade tidigare.
- Välj Granska + skapa. Du bör se att Systemtilldelad hanterad identitet är inställd på Vald.
- När verifieringen är klar väljer du Skapa.
Steg 6: Du är tillbaka i redigeringsdialogrutan för defaultConnector.
- På fliken Autentisering väntar du tills key vault-anslutningsappen har skapats. När den är klar väljer listrutan Key Vault-anslutning automatiskt den.
- Välj Nästa: Nätverk.
- Välj Konfigurera brandväggsregler för att aktivera åtkomst till måltjänsten. Om du ser meddelandet "Ingen privat slutpunkt på måltjänsten" ignorerar du det. Guiden för att skapa appar har redan skyddat Cosmos DB-databasen med en privat slutpunkt.
- Välj Spara. Vänta tills meddelandet Uppdatera lyckades visas.
Steg 7: Verifiera ändringarna:
- På den vänstra menyn väljer du Miljövariabler igen.
- Kontrollera att appinställningen spring.data.mongodb.uri finns. Standardanslutningsappen genererade den åt dig, och Spring Boot-programmet använder redan variabeln.
- Bredvid appinställningen väljer du Visa värde. Värdet ska vara
@Microsoft.KeyVault(...)
, vilket innebär att det är en nyckelvalvsreferens eftersom hemligheten nu hanteras i nyckelvalvet.
Har du problem? Kontrollera felsökningsavsnittet.
4. Distribuera exempelkod
I det här steget konfigurerar du GitHub-distribution med GitHub Actions. Det är bara ett av många sätt att distribuera till App Service, men också ett bra sätt att ha kontinuerlig integrering i distributionsprocessen. Som standard startar varje git push
till din GitHub-lagringsplats bygg- och distributionsåtgärden.
Steg 1: I den vänstra menyn väljer du Distributionsdistributionscenter>.
Steg 2: På sidan Distributionscenter:
- I Källa väljer du GitHub. Som standard är GitHub Actions valt som byggprovider.
- Logga in på ditt GitHub-konto och följ anvisningarna för att auktorisera Azure.
- I Organisation väljer du ditt konto.
- I Lagringsplats väljer du msdocs-spring-boot-mongodb-sample-app.
- I Gren väljer du starter-no-infra. Det här är samma gren som du arbetade i med exempelappen, utan några Azure-relaterade filer eller konfigurationer.
- Som Autentiseringstyp väljer du Användartilldelad identitet.
- I den översta menyn väljer du Spara. App Service checkar in en arbetsflödesfil i den valda GitHub-lagringsplatsen i
.github/workflows
katalogen. Som standard skapar distributionscentret en användartilldelad identitet för arbetsflödet som ska autentiseras med Hjälp av Microsoft Entra (OIDC-autentisering). Alternativa autentiseringsalternativ finns i Distribuera till App Service med GitHub Actions.
Steg 3:
- Välj fliken Loggar. Se att en ny distribution redan har körts, men statusen misslyckades.
- Välj Skapa/distribuera loggar.
En webbläsarflik öppnas på fliken Åtgärder på din förgrenade lagringsplats i GitHub. I Anteckningar visas felet
The string 'java21' is not valid SeVer notation for a Java version
. Om du vill kan du välja det misslyckade byggsteget på sidan för att få mer information.
Steg 4: Felet visar att något gick fel under GitHub-arbetsflödet. Åtgärda det genom att hämta de senaste ändringarna i kodområdet först. Kör i GitHub-kodområdet i exempelgrenen git pull origin starter-no-infra
.
Detta hämtar den nyligen incheckade arbetsflödesfilen till ditt kodområde.
Steg 5 (alternativ 1: med GitHub Copilot):
- Starta en ny chattsession genom att välja vyn Chatt och sedan välja +.
- Fråga: "@workspace Varför får jag felet i GitHub-åtgärder: Strängen "java21" är inte giltig SemVer-notation för en Java-version." Copilot kan ge dig en förklaring och till och med ge dig länken till arbetsflödesfilen som du behöver åtgärda.
- Öppna .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml i utforskaren och gör den föreslagna korrigeringen. GitHub Copilot ger dig inte samma svar varje gång, du kan behöva ställa fler frågor för att finjustera svaret. Tips finns i Vad kan jag göra med GitHub Copilot i mitt kodområde?.
Steg 5 (alternativ 2: utan GitHub Copilot):
- Öppna .github/workflows/starter-no-infra_msdocs-spring-cosmosdb-123.yaml i utforskaren och hitta åtgärden
setup-java@v4
. - Ändra värdet
java-version
för till'21'
.
Steg 6:
- Välj källkontrolltillägget.
- I textrutan skriver du ett incheckningsmeddelande som
Fix error in java-version
. Eller välj och låt GitHub Copilot generera ett incheckningsmeddelande åt dig. - Välj Checka in och bekräfta sedan med Ja.
- Välj Synkronisera ändringar 1 och bekräfta sedan med OK.
Steg 7: Tillbaka på sidan Distributionscenter i Azure Portal:
- Under fliken Loggar väljer du Uppdatera. En ny distributionskörning har redan startats från de incheckade ändringarna.
- I loggobjektet för distributionskörningen väljer du posten Skapa/distribuera loggar med den senaste tidsstämpeln .
Steg 8: Du tas till din GitHub-lagringsplats och ser att GitHub-åtgärden körs. Arbetsflödesfilen definierar två separata steg, skapa och distribuera. Vänta tills GitHub-körningen visar statusen Slutförd.
Har du problem? Kontrollera felsökningsavsnittet.
5. Bläddra till appen
Steg 1: På App Service-sidan:
- Välj Översikt på den vänstra menyn.
- Välj appens URL.
Steg 2: Lägg till några uppgifter i listan. Grattis, du kör en webbapp i Azure App Service med säker anslutning till Azure Cosmos DB.
Har du problem? Kontrollera felsökningsavsnittet.
6. Strömma diagnostikloggar
Azure App Service samlar in alla meddelanden som skickas till konsolen för att hjälpa dig att diagnostisera problem med ditt program. Exempelprogrammet innehåller log4j-standardloggningsinstruktioner för att demonstrera den här funktionen, enligt följande kodfragment:
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();
}
Steg 1: På App Service-sidan:
- Välj App Service-loggar på den vänstra menyn.
- Under Programloggning väljer du Filsystem.
- I den översta menyn väljer du Spara.
Steg 2: Välj Loggström på den vänstra menyn. Du ser loggarna för din app, inklusive plattformsloggar och loggar inifrån containern.
Läs mer om loggning i Java-appar i serien på Aktivera Azure Monitor OpenTelemetry för .NET-, Node.js-, Python- och Java-program.
Har du problem? Kontrollera felsökningsavsnittet.
7. Rensa resurser
När du är klar kan du ta bort alla resurser från din Azure-prenumeration genom att ta bort resursgruppen.
Steg 1: I sökfältet överst i Azure Portal:
- Ange resursgruppsnamnet.
- Välj resursgruppen.
Steg 2: På resursgruppssidan väljer du Ta bort resursgrupp.
Steg 3:
- Bekräfta borttagningen genom att skriva resursgruppens namn.
- Välj Ta bort.
- Bekräfta med Ta bort igen.
2. Skapa Azure-resurser och distribuera en exempelapp
I det här steget skapar du Azure-resurserna och distribuerar en exempelapp för att App Service på Linux. Stegen som används i den här självstudien skapar en uppsättning säkra som standardresurser som inkluderar App Service och Azure Cosmos DB.
Utvecklingscontainern har redan Azure Developer CLI (AZD).
Från lagringsplatsens rot kör du
azd init
.azd init --template javase-app-service-cosmos-redis-infra
När du uppmanas att ge följande svar:
Fråga Svar Den aktuella katalogen är inte tom. Vill du initiera ett projekt här i "<din katalog>"? Y Vad vill du göra med de här filerna? Behåll mina befintliga filer oförändrade Ange ett nytt miljönamn Skriv ett unikt namn. AZD-mallen använder det här namnet som en del av DNS-namnet på din webbapp i Azure ( <app-name>-<hash>.azurewebsites.net
). Alfanumeriska tecken och bindestreck tillåts.Logga in på Azure genom att
azd auth login
köra kommandot och följa kommandotolken:azd auth login
Skapa nödvändiga Azure-resurser och distribuera appkoden med
azd up
kommandot . Följ uppmaningen för att välja önskad prenumeration och plats för Azure-resurserna.azd up
Kommandot
azd up
tar cirka 15 minuter att slutföra (Redis-cachen tar mest tid). Den kompilerar och distribuerar även programkoden, men du ändrar koden senare så att den fungerar med App Service. När den körs innehåller kommandot meddelanden om etablerings- och distributionsprocessen, inklusive en länk till distributionen i Azure. När det är klart visar kommandot även en länk till distributionsprogrammet.Den här AZD-mallen innehåller filer (azure.yaml och infra-katalogen ) som genererar en säker arkitektur som standard med följande Azure-resurser:
- Resursgrupp: Containern för alla skapade resurser.
- App Service-plan: Definierar beräkningsresurserna för App Service. En Linux-plan på B1-nivån skapas.
- App Service: Representerar din app och körs i App Service-planen.
- Virtuellt nätverk: Integrerat med App Service-appen och isolerar serverdelsnätverkstrafik.
- Azure Cosmos DB-konto med MongoDB API: Endast tillgängligt bakom den privata slutpunkten. En databas skapas åt dig på servern.
- Azure Cache for Redis: Endast tillgänglig inifrån det virtuella nätverket.
- Nyckelvalv: Endast tillgängligt bakom den privata slutpunkten. Används för att hantera hemligheter för App Service-appen.
- Privata slutpunkter: Åtkomstslutpunkter för nyckelvalvet, databasservern och Redis-cachen i det virtuella nätverket.
- Privat DNS zoner: Aktivera DNS-matchning av Cosmos DB-databasen, Redis-cachen och nyckelvalvet i det virtuella nätverket.
- Log Analytics-arbetsyta: Fungerar som målcontainer för din app för att skicka loggarna, där du även kan köra frågor mot loggarna.
Har du problem? Kontrollera felsökningsavsnittet.
3. Kontrollera anslutningssträng
Den AZD-mall som du använder genererade anslutningsvariablerna åt dig redan som appinställningar och matar ut dem till terminalen för din bekvämlighet. Appinställningar är ett sätt att hålla anslutningshemligheter borta från din kodlagringsplats.
Leta reda på appinställningen
spring.data.mongodb.uri
i AZD-utdata. Endast inställningsnamnen visas. De ser ut så här i AZD-utdata: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
innehåller anslutnings-URI:n till Cosmos DB-databasen i Azure. Det är en Spring Data-standardvariabel som ditt program redan använder i filen src/main/resources/application.properties .I utforskaren navigerar du till src/main/resources/application.properties och ser att Spring Boot-appen redan använder variabeln
spring.data.mongodb.uri
för att komma åt data.För att underlätta för dig visar AZD-mallens utdata direktlänken till appens appinställningar. Hitta länken och öppna den på en ny webbläsarflik.
Om du tittar på värdet
spring.data.mongodb.uri
för , bör det vara@Microsoft.KeyVault(...)
, vilket innebär att det är en referens för nyckelvalvet eftersom hemligheten hanteras i nyckelvalvet.
Har du problem? Kontrollera felsökningsavsnittet.
4. Bläddra till appen
I AZD-utdata letar du reda på url:en för din app och navigerar till den i webbläsaren. URL:en ser ut så här i AZD-utdata:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: https://<app-name>-<hash>.azurewebsites.net/
Lägg till några uppgifter i listan.
Grattis, du kör en webbapp i Azure App Service med säker anslutning till Azure Cosmos DB.
Har du problem? Kontrollera felsökningsavsnittet.
5. Strömma diagnostikloggar
Azure App Service kan samla in konsolloggar som hjälper dig att diagnostisera problem med ditt program. För enkelhetens skull har AZD-mallen redan aktiverat loggning till det lokala filsystemet och skickar loggarna till en Log Analytics-arbetsyta.
Exempelprogrammet innehåller log4j-standardloggningsinstruktioner för att demonstrera den här funktionen, enligt följande kodfragment:
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();
}
I AZD-utdata hittar du länken för att strömma App Service-loggar och navigera till den i webbläsaren. Länken ser ut så här i AZD-utdata:
Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream
Läs mer om loggning i Java-appar i serien på Aktivera Azure Monitor OpenTelemetry för .NET-, Node.js-, Python- och Java-program.
Har du problem? Kontrollera felsökningsavsnittet.
6. Rensa resurser
Om du vill ta bort alla Azure-resurser i den aktuella distributionsmiljön kör azd down
du och följer anvisningarna.
azd down
Felsökning
- Portaldistributionsvyn för Azure Cosmos DB visar statusen Konflikt
- Den distribuerade exempelappen visar inte uppgiftslistappen
Portaldistributionsvyn för Azure Cosmos DB visar statusen Konflikt
Beroende på din prenumeration och den region du väljer kan distributionsstatusen för Azure Cosmos DB vara Conflict
, med följande meddelande i Åtgärdsinformation:
Sorry, we are currently experiencing high demand in <region> region, and cannot fulfill your request at this time.
Felet orsakas troligen av en gräns för din prenumeration för den region du väljer. Prova att välja en annan region för distributionen.
Den distribuerade exempelappen visar inte uppgiftslistappen
Om du ser en Hey, Java developers!
sida i stället för aktivitetslistappen läser App Service förmodligen fortfarande in den uppdaterade containern från din senaste koddistribution. Vänta några minuter och uppdatera sidan.
Vanliga frågor och svar
- Hur mycket kostar den här installationen?
- Hur gör jag för att köra databasmigrering med Cosmos DB-databasen bakom det virtuella nätverket?
- Hur fungerar utveckling av lokala appar med GitHub Actions?
- Jag har inte behörighet att skapa en användartilldelad identitet
Hur mycket kostar den här installationen?
Prissättningen för de skapade resurserna är följande:
- App Service-planen skapas på Basic-nivån och kan skalas upp eller ned. Se Priser för App Service.
- Azure Cosmos DB-kontot skapas på serverlös nivå och det finns en liten kostnad som är associerad med den här nivån. Se Priser för Azure Cosmos DB.
- Azure Cache for Redis skapas på Basic-nivån med den minsta cachestorleken. Det finns en liten kostnad som är associerad med den här nivån. Du kan skala upp den till högre prestandanivåer för högre tillgänglighet, klustring och andra funktioner. Se Priser för Azure Cache for Redis.
- Det virtuella nätverket debiteras inte om du inte konfigurerar extra funktioner, till exempel peering. Se Priser för Azure Virtual Network.
- Den privata DNS-zonen medför en liten avgift. Se Priser för Azure DNS.
Hur gör jag för att köra databasmigrering med Cosmos DB-databasen bakom det virtuella nätverket?
Java SE-containern i App Service har redan nätverksanslutning till Cosmos DB, men innehåller inga migreringsverktyg eller andra MongoDB-verktyg. Du har några alternativ:
- Kör databasmigreringar automatiskt vid appstart, till exempel med Hibernate och eller Flyway.
- I appens SSH-session installerar du ett migreringsverktyg som Flyway CLI och kör sedan migreringsskriptet. Kom ihåg att det installerade verktyget inte bevaras efter en appomstart om det inte finns i katalogen /home .
- Integrera Azure Cloud Shell med det virtuella nätverket och kör databasmigreringar därifrån.
Hur fungerar utveckling av lokala appar med GitHub Actions?
Med hjälp av den automatiskt genererade arbetsflödesfilen från App Service som exempel startar var git push
och en ny bygg- och distributionskörning. Från en lokal klon av GitHub-lagringsplatsen gör du önskade uppdateringar och push-överför till GitHub. Till exempel:
git add .
git commit -m "<some-message>"
git push origin main
Jag har inte behörighet att skapa en användartilldelad identitet
Se Konfigurera GitHub Actions-distribution från Distributionscenter.
Vad kan jag göra med GitHub Copilot i mitt kodområde?
Du kanske märker att GitHub Copilot-chattvyn redan fanns där när du skapade kodområdet. För din bekvämlighet inkluderar vi GitHub Copilot-chatttillägget i containerdefinitionen (se .devcontainer/devcontainer.json). Du behöver dock ett GitHub Copilot-konto (30 dagars kostnadsfri utvärderingsversion tillgänglig).
Några tips när du pratar med GitHub Copilot:
- I en enda chattsession bygger frågorna och svaren på varandra och du kan justera dina frågor för att finjustera det svar du får.
- Som standard har GitHub Copilot inte åtkomst till någon fil på lagringsplatsen. Om du vill ställa frågor om en fil öppnar du filen i redigeraren först.
- Om du vill ge GitHub Copilot åtkomst till alla filer på lagringsplatsen när du förbereder dess svar börjar du din fråga med
@workspace
. Mer information finns i Use the @workspace agent. - I chattsessionen kan GitHub Copilot föreslå ändringar och (med
@workspace
) även var ändringarna ska utföras, men det är inte tillåtet att göra ändringarna åt dig. Det är upp till dig att lägga till de föreslagna ändringarna och testa dem.
Nästa steg
- Azure för Java-utvecklare
- Spring Boot
- Spring Data för Azure Cosmos DB
- Azure Cosmos DB och -App Service Linux
Läs mer om att köra Java-appar på App Service i utvecklarguiden.
Lär dig hur du skyddar din app med en anpassad domän och ett certifikat.