Snabbstart: Distribuera RESTful API-program till Azure Spring Apps
Kommentar
Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.
Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.
I den här artikeln beskrivs hur du distribuerar ett RESTful API-program som skyddas av Microsoft Entra-ID till Azure Spring Apps. Exempelprojektet är en förenklad version baserad på simple todo-webbappen , som endast tillhandahåller serverdelstjänsten och använder Microsoft Entra-ID för att skydda RESTful-API:erna.
Dessa RESTful-API:er skyddas genom att tillämpa rollbaserad åtkomstkontroll (RBAC). Anonyma användare kan inte komma åt några data och får inte styra åtkomsten för olika användare. Anonyma användare har bara följande tre behörigheter:
- Läs: Med den här behörigheten kan en användare läsa ToDo-data.
- Skriv: Med den här behörigheten kan en användare lägga till eller uppdatera ToDo-data.
- Ta bort: Med den här behörigheten kan en användare ta bort ToDo-data.
När distributionen har slutförts kan du visa och testa API:erna via Swagger-användargränssnittet.
Följande diagram visar systemets arkitektur:
I den här artikeln beskrivs följande alternativ för att skapa resurser och distribuera dem till Azure Spring Apps:
- Plugin-alternativet Azure Portal + Maven är ett mer konventionellt sätt att skapa resurser och distribuera program steg för steg. Det här alternativet är lämpligt för Spring-utvecklare som använder Azure-molntjänster för första gången.
- Cli-alternativet Azure Developer är ett effektivare sätt att automatiskt skapa resurser och distribuera program via enkla kommandon. Azure Developer CLI använder en mall för att etablera de Azure-resurser som behövs och för att distribuera programkoden. Det här alternativet är lämpligt för Spring-utvecklare som är bekanta med Azure-molntjänster.
I den här artikeln beskrivs följande alternativ för att skapa resurser och distribuera dem till Azure Spring Apps:
- Plugin-alternativet Azure Portal + Maven är ett mer konventionellt sätt att skapa resurser och distribuera program steg för steg. Det här alternativet är lämpligt för Spring-utvecklare som använder Azure-molntjänster för första gången.
- Azure CLI-alternativet använder ett kraftfullt kommandoradsverktyg för att hantera Azure-resurser. Det här alternativet är lämpligt för Spring-utvecklare som är bekanta med Azure-molntjänster.
1. Förutsättningar
En Azure-prenumeration Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
En av följande roller:
- Global administratör eller privilegierad rolladministratör för att bevilja medgivande för appar som begär en behörighet för valfritt API.
- Molnprogramadministratör eller programadministratör för att bevilja medgivande för appar som begär behörighet för alla API:er, förutom Microsoft Graph-approller (programbehörigheter).
- En anpassad katalogroll som innehåller behörighet att bevilja behörigheter till program för de behörigheter som krävs av programmet.
Mer information finns i Bevilja administratörsmedgivande för hela klientorganisationen till ett program.
Om du distribuerar en Azure Spring Apps Enterprise-planinstans för första gången i målprenumerationen läser du avsnittet Krav i Enterprise-plan på Azure Marketplace.
Git.
Java Development Kit (JDK), version 17.
En Microsoft Entra-klientorganisation. Anvisningar om hur du skapar en finns i Snabbstart: Skapa en ny klientorganisation i Microsoft Entra-ID.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
En av följande roller:
- Global administratör eller privilegierad rolladministratör för att bevilja medgivande för appar som begär en behörighet för valfritt API.
- Molnprogramadministratör eller programadministratör för att bevilja medgivande för appar som begär behörighet för alla API:er, förutom Microsoft Graph-approller (programbehörigheter).
- En anpassad katalogroll som innehåller behörighet att bevilja behörigheter till program för de behörigheter som krävs av programmet.
Mer information finns i Bevilja administratörsmedgivande för hela klientorganisationen till ett program.
Git.
Java Development Kit (JDK), version 17.
En Microsoft Entra-klientorganisation. Anvisningar om hur du skapar en finns i Snabbstart: Skapa en ny klientorganisation i Microsoft Entra-ID.
2. Förbereda Spring-projektet
För att distribuera RESTful API-appen är det första steget att förbereda Spring-projektet för att köras lokalt.
Använd följande steg för att klona och köra appen lokalt:
Använd följande kommando för att klona exempelprojektet från GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Om du vill köra appen lokalt slutför du stegen i avsnittet Exponera RESTful-API:er och Uppdatera programkonfigurationsavsnitten först och använder sedan följande kommando för att köra exempelprogrammet med Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Förbereda molnmiljön
De viktigaste resurserna som krävs för att köra den här exempelappen är en Azure Spring Apps-instans och en Azure Database for PostgreSQL-instans. I följande avsnitt beskrivs hur du skapar dessa resurser.
3.1. Logga in på Azure-portalen
Gå till Azure Portal och ange dina autentiseringsuppgifter för att logga in på portalen. Standardvyn är instrumentpanelen.
3.2. Skapa en Azure Spring Apps-instans
Använd följande steg för att skapa en Azure Spring Apps-tjänstinstans:
Välj Skapa en resurs i hörnet av Azure Portal.
Välj Beräkna>Azure Spring Apps.
Fyll i formuläret Grundläggande med följande information:
Inställning Föreslaget värde beskrivning Abonnemang Namnet på din prenumeration. Den Azure-prenumeration som ska användas för servern. Om du har flera prenumerationer väljer du den prenumeration där du vill debiteras för resursen. Resursgrupp myresourcegroup Ett nytt resursgruppnamn eller ett befintligt namn i prenumerationen. Namn myasa Ett unikt namn som identifierar din Azure Spring Apps-tjänst. Namnet måste vara mellan 4 och 32 tecken långt och får endast innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller ett tal. Planera Enterprise Prisplanen som avgör vilken resurs och kostnad som är associerad med din instans. Region Den region som är närmast dina användare. Den plats som är närmast dina användare. Zonredundant Inte markerat Alternativet att skapa din Azure Spring Apps-tjänst i en Azure-tillgänglighetszon. Den här funktionen stöds för närvarande inte i alla regioner. Ip-plan för programvara Betala per användning Prisplanen som låter dig betala per användning med Azure Spring Apps. Villkor Har valts Kryssrutan avtal som är associerad med Marketplace-erbjudandet. Du måste markera den här kryssrutan. Distribuera exempelprojekt Inte markerat Alternativet att använda det inbyggda exempelprogrammet. Välj Granska och skapa för att granska dina val. Välj sedan Skapa för att etablera Azure Spring Apps-instansen.
Välj ikonen Aviseringar (en bjällra) i verktygsfältet för att övervaka distributionsprocessen. När distributionen är klar kan du välja Fäst på instrumentpanelen, vilket skapar en panel för den här tjänsten på din Azure Portal instrumentpanel som en genväg till tjänstens översiktssida.
Välj Gå till resurs för att gå till översiktssidan för Azure Spring Apps .
3.3. Förbereda PostgreSQL-instansen
Använd följande steg för att skapa en Azure Database for PostgreSQL-server:
Gå till Azure Portal och välj Skapa en resurs.
Välj Databaser>Azure-databas för PostgreSQL.
Välj alternativet Flexibel serverdistribution.
Fyll i fliken Grundläggande med följande information:
- Servernamn: my-demo-pgsql
- Region: USA, östra
- PostgreSQL-version: 14
- Arbetsbelastningstyp: Utveckling
- Aktivera hög tillgänglighet: avmarkerad
- Autentiseringsmetod: Endast PostgreSQL-autentisering
- Administratörsanvändarnamn: myadmin
- Lösenord och bekräfta lösenord: Ange ett lösenord.
Använd följande information för att konfigurera fliken Nätverk :
- Anslutningsmetod: Offentlig åtkomst (tillåtna IP-adresser)
- Tillåt offentlig åtkomst från valfri Azure-tjänst i Azure till den här servern: vald
Välj Granska + skapa för att granska dina val och välj Skapa för att etablera servern. Den här åtgärden kan ta några minuter.
Gå till din PostgreSQL-server i Azure-portalen. På sidan Översikt letar du efter värdet Servernamn och registrerar det för senare användning. Du behöver den för att konfigurera miljövariablerna för appen i Azure Spring Apps.
Välj Databaser på navigeringsmenyn för att skapa en databas , till exempel att göra.
3.4. Ansluta appinstansen till PostgreSQL-instansen
Använd följande steg för att ansluta dina tjänstinstanser:
Gå till din Azure Spring Apps-instans i Azure Portal.
Öppna Appar på navigeringsmenyn och välj sedan Skapa app.
På sidan Skapa app fyller du i appnamnet simple-todo-api och väljer sedan Java-artefakter som distributionstyp .
Välj Skapa för att slutföra skapandet av appen och välj sedan appen för att visa informationen.
Gå till appen som du skapade i Azure Portal. På sidan Översikt väljer du Tilldela slutpunkt för att exponera appens offentliga slutpunkt. Spara URL:en för åtkomst till appen efter distributionen.
Välj Tjänstanslutning i navigeringsfönstret och välj sedan Skapa för att skapa en ny tjänstanslutning.
Fyll i fliken Grundläggande med följande information:
- Tjänsttyp: DB för Flexibel PostgreSQL-server
- Anslutningsnamn: Ett automatiskt genererat namn fylls i, vilket också kan ändras.
- Prenumeration: Välj din prenumeration.
- PostgreSQL – flexibel server: my-demo-pgsql
- PostgreSQL-databas: Välj den databas som du skapade.
- Klienttyp: SpringBoot
Konfigurera fliken Nästa: Autentisering med följande information:
- Välj den autentiseringstyp som du vill använda mellan beräkningstjänsten och måltjänsten.: Välj Anslutningssträng.
- Fortsätt med...: Välj databasautentiseringsuppgifter
- Användarnamn: myadmin
- Lösenord: Ange ditt lösenord.
Välj Nästa: Nätverk. Använd standardalternativet Konfigurera brandväggsregler för att aktivera åtkomst till måltjänsten.
Välj Nästa: Granska och skapa för att granska dina val och välj sedan Skapa för att skapa anslutningen.
3.5. Exponera RESTful-API:er
Använd följande steg för att exponera dina RESTful-API:er i Microsoft Entra-ID:
Logga in på Azure-portalen.
Om du har åtkomst till flera klienter använder du filtret Katalog + prenumeration ( ) för att välja den klientorganisation där du vill registrera ett program.
Sök efter och markera Microsoft Entra ID.
Under Hantera väljer du Appregistreringar> Ny registrering.
Ange ett namn för ditt program i fältet Namn , till exempel Todo. Användare av din app kan se det här namnet och du kan ändra det senare.
För Kontotyper som stöds väljer du Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Flera klientorganisationer) och personliga Microsoft-konton.
Välj Registrera för att skapa programmet.
På appöversiktssidan letar du efter värdet program-ID (klient) och registrerar det för senare användning. Du behöver den för att konfigurera YAML-konfigurationsfilen för det här projektet.
Under Hantera väljer du Exponera ett API, letar upp program-ID-URI:n i början av sidan och väljer sedan Lägg till.
På sidan Redigera program-ID-URI accepterar du den föreslagna program-ID-URI:n (
api://{client ID}
) eller använder ett beskrivande namn i stället för klient-ID:t, till exempelapi://simple-todo
, och väljer sedan Spara.Under Hantera väljer du Exponera ett API>Lägg till ett omfång och anger sedan följande information:
- Som Omfångsnamn anger du ToDo.Read.
- För Vem kan samtycka väljer du endast Administratörer.
- För Visningsnamn för administratörsmedgivande anger du Läs ToDo-data.
- Som Beskrivning av administratörsmedgivande anger du Tillåt autentiserade användare att läsa ToDo-data..
- För Tillstånd behåller du det aktiverat.
- Välj Lägg till definitionsområde.
Upprepa föregående steg för att lägga till de andra två omfången: ToDo.Write och ToDo.Delete.
3.6. Uppdatera programkonfigurationen
Använd följande steg för att uppdatera YAML-filen för att använda din Microsoft Entra-registrerade programinformation för att upprätta en relation med RESTful API-programmet:
Leta upp filen src/main/resources/application.yml för
simple-todo-api
appen. Uppdatera konfigurationenspring.cloud.azure.active-directory
i avsnittet så att den matchar följande exempel. Se till att ersätta platshållarna med de värden som du skapade tidigare.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Kommentar
I v1.0-token kräver konfigurationen klient-ID för API:et, medan du i v2.0-token kan använda klient-ID:t eller program-ID:ts URI i begäran. Du kan konfigurera båda för att slutföra målgruppsverifieringen korrekt.
De värden som tillåts för
tenant-id
är:common
,organizations
,consumers
eller klientorganisations-ID. Mer information om dessa värden finns i avsnittet Använd fel slutpunkt (personliga konton och organisationskonton) i Fel AADSTS50020 – Användarkonto från identitetsprovidern finns inte i klientorganisationen. Information om hur du konverterar din app för en klientorganisation finns i Konvertera en klientorganisationsapp till flera klientorganisationer på Microsoft Entra-ID.Använd följande kommando för att återskapa exempelprojektet:
./mvnw clean package
4. Distribuera appen till Azure Spring Apps
Nu kan du distribuera appen till Azure Spring Apps.
Använd följande steg för att distribuera med maven-plugin-programmet för Azure Spring Apps:
Gå till den fullständiga katalogen och kör sedan följande kommando för att konfigurera appen i Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
I följande lista beskrivs kommandointeraktionerna:
- OAuth2-inloggning: Du måste auktorisera inloggningen till Azure baserat på OAuth2-protokollet.
- Välj prenumeration: Välj prenumerationslistans nummer för den Azure Spring Apps-instans som du skapade, som standard är den första prenumerationen i listan. Om du använder standardnumret trycker du på Retur direkt.
- Använd befintliga Azure Spring Apps i Azure: Tryck på y för att använda den befintliga Azure Spring Apps-instansen.
- Välj Azure Spring Apps för distribution: Välj antalet Azure Spring Apps-instanser som du skapade. Om du använder standardnumret trycker du på Retur direkt.
- Använd befintlig app i Azure Spring Apps <ditt-instansnamn>: Tryck på y för att använda den skapade appen.
- Bekräfta för att spara alla ovanstående konfigurationer: Tryck på y. Om du trycker på n sparas inte konfigurationen i POM-filerna.
Använd följande kommando för att distribuera appen:
./mvnw azure-spring-apps:deploy
I följande lista beskrivs kommandointeraktionen:
- OAuth2-inloggning: Du måste auktorisera inloggningen till Azure baserat på OAuth2-protokollet.
När kommandot har körts kan du se från följande loggmeddelanden att distributionen lyckades:
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-api-default-15-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(simple-todo-api)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-api.azuremicroservices.io
5. Verifiera appen
Nu kan du komma åt RESTful-API:et för att se om det fungerar.
5.1. Begära en åtkomsttoken
RESTful-API:erna fungerar som en resursserver, som skyddas av Microsoft Entra-ID. Innan du hämtar en åtkomsttoken måste du registrera ett annat program i Microsoft Entra-ID och bevilja behörigheter till klientprogrammet, som heter ToDoWeb
.
Registrera klientprogrammet
Använd följande steg för att registrera ett program i Microsoft Entra-ID, som används för att lägga till behörigheter för ToDo
appen:
Logga in på Azure-portalen.
Om du har åtkomst till flera klienter använder du filtret Katalog + prenumeration ( ) för att välja den klientorganisation där du vill registrera ett program.
Sök efter och markera Microsoft Entra ID.
Under Hantera väljer du Appregistreringar> Ny registrering.
Ange ett namn för ditt program i fältet Namn , till exempel ToDoWeb. Användare av din app kan se det här namnet och du kan ändra det senare.
För kontotyper som stöds använder du endast standardvärdet Konton i den här organisationskatalogen.
Välj Registrera för att skapa programmet.
På appöversiktssidan letar du efter värdet program-ID (klient) och registrerar det för senare användning. Du behöver den för att hämta en åtkomsttoken.
Välj API-behörigheter>Lägg till en behörighet>Mina API:er. Välj det
ToDo
program som du registrerade tidigare och välj sedan behörigheterna ToDo.Read, ToDo.Write och ToDo.Delete . Välj Lägg till behörigheter.Välj Bevilja administratörsmedgivande för ditt klientnamn> för <att bevilja administratörsmedgivande för de behörigheter som du har lagt till.
Lägg till användare för att komma åt RESTful-API:er
Använd följande steg för att skapa en medlemsanvändare i din Microsoft Entra-klientorganisation. Sedan kan användaren hantera programmets ToDo
data via RESTful-API:er.
Under Hantera väljer du Användare>Ny användare>Skapa ny användare.
På sidan Skapa ny användare anger du följande information:
- Användarens huvudnamn: Ange ett namn för användaren.
- Visningsnamn: Ange ett visningsnamn för användaren.
- Lösenord: Kopiera det automatiskt genererade lösenordet som anges i rutan Lösenord .
Kommentar
Nya användare måste slutföra den första inloggningsautentiseringen och uppdatera sina lösenord, annars får du ett
AADSTS50055: The password is expired
fel när du får åtkomsttoken.När en ny användare loggar in får de en uppmaning om åtgärd som krävs . De kan välja Fråga senare för att hoppa över valideringen.
Välj Granska + skapa för att granska dina val. Välj Skapa för att skapa användaren.
Uppdatera OAuth2-konfigurationen för Swagger UI-auktorisering
Använd följande steg för att uppdatera OAuth2-konfigurationen för Swagger UI-auktorisering. Sedan kan du auktorisera användare att hämta åtkomsttoken via ToDoWeb
appen.
Öppna din Microsoft Entra ID-klientorganisation i Azure Portal och gå till den registrerade
ToDoWeb
appen.Under Hantera väljer du Autentisering, lägger till en plattform och väljer sedan Ensidesprogram.
Använd formatet
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
som omdirigerings-URL för OAuth2 i fältet Omdirigerings-URI:er och välj sedan Konfigurera.
2. Förbereda Spring-projektet
För att distribuera RESTful API-appen är det första steget att förbereda Spring-projektet för att köras lokalt.
Använd följande steg för att klona och köra appen lokalt:
Använd följande kommando för att klona exempelprojektet från GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Om du vill köra appen lokalt slutför du stegen i avsnittet Exponera RESTful-API:er och Uppdatera programkonfigurationsavsnitten först och använder sedan följande kommando för att köra exempelprogrammet med Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Förbereda molnmiljön
De viktigaste resurserna som krävs för att köra den här exempelappen är en Azure Spring Apps-instans och en Azure Database for PostgreSQL-instans. I följande avsnitt beskrivs hur du skapar dessa resurser.
3.1. Logga in på Azure-portalen
Gå till Azure Portal och ange dina autentiseringsuppgifter för att logga in på portalen. Standardvyn är instrumentpanelen.
3.2. Skapa en Azure Spring Apps-instans
Använd följande steg för att skapa en tjänstinstans:
Välj Skapa en resurs i hörnet av portalen.
Välj Beräkna>Azure Spring Apps.
Fyll i formuläret Grundläggande . Använd följande tabell som en guide för att fylla i formuläret. Det rekommenderade planvärdet är Standardförbrukning och dedikerad (förhandsversion).
Inställning Föreslaget värde beskrivning Abonnemang Namnet på din prenumeration. Den Azure-prenumeration som ska användas för servern. Om du har flera prenumerationer väljer du den prenumeration där du vill debiteras för resursen. Resursgrupp myresourcegroup Ett nytt resursgruppnamn eller ett befintligt namn i prenumerationen. Namn myasa Ett unikt namn som identifierar din Azure Spring Apps-tjänst. Namnet måste vara mellan 4 och 32 tecken långt och får endast innehålla gemener, siffror och bindestreck. Det första tecknet i tjänstnamnet måste vara en bokstav och det sista tecknet måste vara antingen en bokstav eller ett tal. Planera Standardförbrukning och dedikerad (förhandsversion) Prisplanen avgör vilka resurser och kostnader som är kopplade till din instans. Region Den region som är närmast dina användare. Den plats som är närmast dina användare. Container Apps-miljö myenvironment Alternativet att välja vilken Container Apps-miljöinstans som ska dela samma virtuella nätverk med andra tjänster och resurser. Använd följande tabell som en guide för att skapa Container Apps Environment:
Inställning Föreslaget värde beskrivning Miljönamn myenvironment Ett unikt namn som identifierar din Azure Container Apps Environment-tjänst. Planera Förbrukning Prisplanen avgör vilka resurser och kostnader som är kopplade till din instans. Zonredundant Inaktiverad Alternativet för att skapa din Container Apps Environment-tjänst i en Azure-tillgänglighetszon. Välj Granska och skapa för att granska dina val. Välj sedan Skapa för att etablera Azure Spring Apps-instansen.
Välj ikonen Aviseringar (en bjällra) i verktygsfältet för att övervaka distributionsprocessen. När distributionen är klar kan du välja Fäst på instrumentpanelen, vilket skapar en panel för den här tjänsten på din Azure Portal instrumentpanel som en genväg till tjänstens översiktssida.
Välj Gå till resurs för att öppna tjänstens översiktssida.
Viktigt!
Förbrukningsarbetsbelastningsprofilen har en faktureringsmodell för användningsbaserad betalning utan startkostnad. Du debiteras för den dedikerade arbetsbelastningsprofilen baserat på de etablerade resurserna. Mer information finns i Arbetsbelastningsprofiler i Priser för Azure Container Apps och Azure Spring Apps.
3.3. Förbereda PostgreSQL-instansen
Använd följande steg för att skapa en Azure Database for PostgreSQL-server:
Gå till Azure Portal och välj Skapa en resurs.
Välj Databaser>Azure-databas för PostgreSQL.
Välj alternativet Flexibel serverdistribution.
Fyll i fliken Grundläggande med följande information:
- Servernamn: my-demo-pgsql
- Region: USA, östra
- PostgreSQL-version: 14
- Arbetsbelastningstyp: Utveckling
- Aktivera hög tillgänglighet: avmarkerad
- Autentiseringsmetod: Endast PostgreSQL-autentisering
- Administratörsanvändarnamn: myadmin
- Lösenord och bekräfta lösenord: Ange ett lösenord.
Använd följande information för att konfigurera fliken Nätverk :
- Anslutningsmetod: Offentlig åtkomst (tillåtna IP-adresser)
- Tillåt offentlig åtkomst från valfri Azure-tjänst i Azure till den här servern: vald
Välj Granska + skapa för att granska dina val och välj Skapa för att etablera servern. Den här åtgärden kan ta några minuter.
Gå till din PostgreSQL-server i Azure-portalen. På sidan Översikt letar du efter värdet Servernamn och registrerar det för senare användning. Du behöver den för att konfigurera miljövariablerna för appen i Azure Spring Apps.
Välj Databaser på navigeringsmenyn för att skapa en databas , till exempel att göra.
3.4. Ansluta appinstansen till PostgreSQL-instansen
Använd följande steg för att ansluta dina tjänstinstanser:
Gå till din Azure Spring Apps-instans i Azure Portal.
Öppna Appar på navigeringsmenyn och välj sedan Skapa app.
På sidan Skapa app fyller du i appnamnet simple-todo-api och väljer Java-artefakter som distributionstyp .
Välj Skapa för att slutföra skapandet av appen och välj appen för att visa informationen.
Gå till appen som du skapade i Azure Portal. På sidan Översikt väljer du Tilldela slutpunkt för att exponera appens offentliga slutpunkt. Spara URL:en för åtkomst till appen efter distributionen.
Gå till appen du skapade, expandera Inställningar och välj Konfiguration på navigeringsmenyn och välj sedan Miljövariabler för att ange miljövariablerna.
Lägg till följande miljövariabler för PostgreSQL-anslutningen och välj sedan Spara för att slutföra appkonfigurationsuppdateringen. Se till att ersätta platshållarna med dina egna värden som du skapade tidigare.
Miljövariabel Värde SPRING_DATASOURCE_URL
jdbc:postgresql://<your-PostgreSQL-server-name>:5432/<your-PostgreSQL-database-name>
SPRING_DATASOURCE_USERNAME
<your-PostgreSQL-admin-user>
SPRING_DATASOURCE_PASSWORD
<your-PostgreSQL-admin-password>
3.5. Exponera RESTful-API:er
Använd följande steg för att exponera dina RESTful-API:er i Microsoft Entra-ID:
Logga in på Azure-portalen.
Om du har åtkomst till flera klienter använder du filtret Katalog + prenumeration ( ) för att välja den klientorganisation där du vill registrera ett program.
Sök efter och markera Microsoft Entra ID.
Under Hantera väljer du Appregistreringar> Ny registrering.
Ange ett namn för ditt program i fältet Namn , till exempel Todo. Användare av din app kan se det här namnet och du kan ändra det senare.
För Kontotyper som stöds väljer du Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Flera klientorganisationer) och personliga Microsoft-konton.
Välj Registrera för att skapa programmet.
På appöversiktssidan letar du efter värdet program-ID (klient) och registrerar det för senare användning. Du behöver den för att konfigurera YAML-konfigurationsfilen för det här projektet.
Under Hantera väljer du Exponera ett API, letar upp program-ID-URI:n i början av sidan och väljer sedan Lägg till.
På sidan Redigera program-ID-URI accepterar du den föreslagna program-ID-URI:n (
api://{client ID}
) eller använder ett beskrivande namn i stället för klient-ID:t, till exempelapi://simple-todo
, och väljer sedan Spara.Under Hantera väljer du Exponera ett API>Lägg till ett omfång och anger sedan följande information:
- Som Omfångsnamn anger du ToDo.Read.
- För Vem kan samtycka väljer du endast Administratörer.
- För Visningsnamn för administratörsmedgivande anger du Läs ToDo-data.
- Som Beskrivning av administratörsmedgivande anger du Tillåt autentiserade användare att läsa ToDo-data..
- För Tillstånd behåller du det aktiverat.
- Välj Lägg till definitionsområde.
Upprepa föregående steg för att lägga till de andra två omfången: ToDo.Write och ToDo.Delete.
3.6. Uppdatera programkonfigurationen
Använd följande steg för att uppdatera YAML-filen för att använda din Microsoft Entra-registrerade programinformation för att upprätta en relation med RESTful API-programmet:
Leta upp filen src/main/resources/application.yml för
simple-todo-api
appen. Uppdatera konfigurationenspring.cloud.azure.active-directory
i avsnittet så att den matchar följande exempel. Se till att ersätta platshållarna med de värden som du skapade tidigare.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Kommentar
I v1.0-token kräver konfigurationen klient-ID för API:et, medan du i v2.0-token kan använda klient-ID:t eller program-ID:ts URI i begäran. Du kan konfigurera båda för att slutföra målgruppsverifieringen korrekt.
De värden som tillåts för
tenant-id
är:common
,organizations
,consumers
eller klientorganisations-ID. Mer information om dessa värden finns i avsnittet Använd fel slutpunkt (personliga konton och organisationskonton) i Fel AADSTS50020 – Användarkonto från identitetsprovidern finns inte i klientorganisationen. Information om hur du konverterar din app för en klientorganisation finns i Konvertera en klientorganisationsapp till flera klientorganisationer på Microsoft Entra-ID.Använd följande kommando för att återskapa exempelprojektet:
./mvnw clean package
4. Distribuera appen till Azure Spring Apps
Nu kan du distribuera appen till Azure Spring Apps.
Använd följande steg för att distribuera med maven-plugin-programmet för Azure Spring Apps:
Gå till den fullständiga katalogen och kör sedan följande kommando för att konfigurera appen i Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
I följande lista beskrivs kommandointeraktionerna:
- OAuth2-inloggning: Du måste auktorisera inloggningen till Azure baserat på OAuth2-protokollet.
- Välj prenumeration: Välj prenumerationslistans nummer för den Azure Spring Apps-instans som du skapade, som standard är den första prenumerationen i listan. Om du använder standardnumret trycker du på Retur direkt.
- Använd befintliga Azure Spring Apps i Azure: Tryck på y för att använda den befintliga Azure Spring Apps-instansen.
- Välj Azure Spring Apps för distribution: Välj antalet Azure Spring Apps-instanser som du skapade. Om du använder standardnumret trycker du på Retur direkt.
- Använd befintlig app i Azure Spring Apps <ditt-instansnamn>: Tryck på y för att använda den skapade appen.
- Bekräfta för att spara alla ovanstående konfigurationer: Tryck på y. Om du trycker på n sparas inte konfigurationen i POM-filerna.
Använd följande kommando för att distribuera appen:
./mvnw azure-spring-apps:deploy
I följande lista beskrivs kommandointeraktionen:
- OAuth2-inloggning: Du måste auktorisera inloggningen till Azure baserat på OAuth2-protokollet.
När kommandot har körts kan du se från följande loggmeddelanden att distributionen lyckades:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:demo--default-xxxxxxx-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:NONE
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://demo.<unique-identifier>.<region-name>.azurecontainerapps.io
5. Verifiera appen
Nu kan du komma åt RESTful-API:et för att se om det fungerar.
5.1. Begära en åtkomsttoken
RESTful-API:erna fungerar som en resursserver, som skyddas av Microsoft Entra-ID. Innan du hämtar en åtkomsttoken måste du registrera ett annat program i Microsoft Entra-ID och bevilja behörigheter till klientprogrammet, som heter ToDoWeb
.
Registrera klientprogrammet
Använd följande steg för att registrera ett program i Microsoft Entra-ID, som används för att lägga till behörigheter för ToDo
appen:
Logga in på Azure-portalen.
Om du har åtkomst till flera klienter använder du filtret Katalog + prenumeration ( ) för att välja den klientorganisation där du vill registrera ett program.
Sök efter och markera Microsoft Entra ID.
Under Hantera väljer du Appregistreringar> Ny registrering.
Ange ett namn för ditt program i fältet Namn , till exempel ToDoWeb. Användare av din app kan se det här namnet och du kan ändra det senare.
För kontotyper som stöds använder du endast standardvärdet Konton i den här organisationskatalogen.
Välj Registrera för att skapa programmet.
På appöversiktssidan letar du efter värdet program-ID (klient) och registrerar det för senare användning. Du behöver den för att hämta en åtkomsttoken.
Välj API-behörigheter>Lägg till en behörighet>Mina API:er. Välj det
ToDo
program som du registrerade tidigare och välj sedan behörigheterna ToDo.Read, ToDo.Write och ToDo.Delete . Välj Lägg till behörigheter.Välj Bevilja administratörsmedgivande för ditt klientnamn> för <att bevilja administratörsmedgivande för de behörigheter som du har lagt till.
Lägg till användare för att komma åt RESTful-API:er
Använd följande steg för att skapa en medlemsanvändare i din Microsoft Entra-klientorganisation. Sedan kan användaren hantera programmets ToDo
data via RESTful-API:er.
Under Hantera väljer du Användare>Ny användare>Skapa ny användare.
På sidan Skapa ny användare anger du följande information:
- Användarens huvudnamn: Ange ett namn för användaren.
- Visningsnamn: Ange ett visningsnamn för användaren.
- Lösenord: Kopiera det automatiskt genererade lösenordet som anges i rutan Lösenord .
Kommentar
Nya användare måste slutföra den första inloggningsautentiseringen och uppdatera sina lösenord, annars får du ett
AADSTS50055: The password is expired
fel när du får åtkomsttoken.När en ny användare loggar in får de en uppmaning om åtgärd som krävs . De kan välja Fråga senare för att hoppa över valideringen.
Välj Granska + skapa för att granska dina val. Välj Skapa för att skapa användaren.
Uppdatera OAuth2-konfigurationen för Swagger UI-auktorisering
Använd följande steg för att uppdatera OAuth2-konfigurationen för Swagger UI-auktorisering. Sedan kan du auktorisera användare att hämta åtkomsttoken via ToDoWeb
appen.
Öppna din Microsoft Entra ID-klientorganisation i Azure Portal och gå till den registrerade
ToDoWeb
appen.Under Hantera väljer du Autentisering, lägger till en plattform och väljer sedan Ensidesprogram.
Använd formatet
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
som omdirigerings-URL för OAuth2 i fältet Omdirigerings-URI:er och välj sedan Konfigurera.
Hämta åtkomsttoken
Använd följande steg för att använda OAuth 2.0-auktoriseringskodflödesmetoden för att hämta en åtkomsttoken med Microsoft Entra-ID och sedan komma åt appens RESTful-API:er ToDo
:
Öppna url:en som exponeras av appen och välj sedan Auktorisera för att förbereda OAuth2-autentiseringen.
I fönstret Tillgängliga auktoriseringar anger du appens klient-ID
ToDoWeb
i fältet client_id, markerar alla omfång för fältet Omfång, ignorerar fältet client_secret och väljer sedan Auktorisera för att omdirigera till Microsoft Entra-inloggningssidan.
När du har slutfört inloggningen med den tidigare användaren återgår du till fönstret Tillgängliga auktoriseringar .
5.2. Få åtkomst till RESTful-API:erna
Använd följande steg för att komma åt RESTful-API:erna för ToDo
appen i Swagger-användargränssnittet:
Välj API POST /api/simple-todo/lists och välj sedan Prova. Ange följande begärandetext och välj sedan Kör för att skapa en ToDo-lista.
{ "name": "My List" }
När körningen är klar visas följande svarstext:
{ "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null }
Välj API POST /api/simple-todo/lists/{listId}/items och välj sedan Prova. För listId anger du det ToDo-list-ID som du skapade tidigare, anger följande begärandetext och väljer sedan Kör för att skapa ett ToDo-objekt.
{ "name": "My first ToDo item", "listId": "<ID-of-the-ToDo-list>", "state": "todo" }
Den här åtgärden returnerar följande ToDo-objekt:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.9033069+08:00", "completedDate": null }
Välj API GET /api/simple-todo/lists och välj sedan Kör för att fråga ToDo-listor. Den här åtgärden returnerar följande ToDo-listor:
[ { "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null } ]
Välj API GET /api/simple-todo/lists/{listId}/items och välj sedan Prova. För listId anger du det ToDo-list-ID som du skapade tidigare och väljer sedan Kör för att köra frågor mot ToDo-objekten. Den här åtgärden returnerar följande ToDo-objekt:
[ { "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.903307+08:00", "completedDate": null } ]
Välj API PUT /api/simple-todo/lists/{listId}/items/{itemId} och välj sedan Prova. För listId anger du todo-list-ID. För itemId anger du Objekt-ID för ToDo, anger följande begärandetext och väljer sedan Kör för att uppdatera ToDo-objektet.
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "dueDate": "2023-07-11T13:59:24.903307+08:00", "state": "inprogress" }
Den här åtgärden returnerar följande uppdaterade ToDo-objekt:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "state": "inprogress", "dueDate": "2023-07-11T05:59:24.903307Z", "completedDate": null }
Välj API DELETE /api/simple-todo/lists/{listId}/items/{itemId} och välj sedan Prova. För listId anger du todo-list-ID. För itemId anger du Objekt-ID för ToDo och väljer sedan Kör för att ta bort ToDo-objektet. Du bör se att serverns svarskod är
204
.
6. Rensa resurser
Du kan ta bort den Azure-resursgrupp som innehåller alla resurser i resursgruppen.
Använd följande steg för att ta bort hela resursgruppen, inklusive den nyligen skapade tjänsten:
Leta reda på resursgruppen på Azure Portal.
På navigeringsmenyn väljer du Resursgrupper. Välj sedan namnet på resursgruppen , till exempel myresourcegroup.
Välj Ta bort på din resursgruppssida. Ange namnet på resursgruppen i textrutan för att bekräfta borttagningen, till exempel myresourcegroup. Välj sedan Ta bort.
Använd följande steg för att ta bort hela resursgruppen, inklusive den nyligen skapade tjänsten:
Leta reda på resursgruppen på Azure Portal.
På navigeringsmenyn väljer du Resursgrupper. Välj sedan namnet på resursgruppen , till exempel myresourcegroup.
Välj Ta bort på din resursgruppssida. Ange namnet på resursgruppen i textrutan för att bekräfta borttagningen, till exempel myresourcegroup. Välj sedan Ta bort.
7. Nästa steg
Mer information finns i följande artiklar: