Share via


Snabbstart: Distribuera RESTful API-program till Azure Spring Apps

Kommentar

De första 50 vCPU-timmarna och 100 GB minne är lediga varje månad. Mer information finns i Prissänkning – Azure Spring Apps gör mer, kostar mindre! på Apparna på Azure-bloggen.

Kommentar

Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.

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.

Skärmbild av Swagger-användargränssnittet som visar API-dokumentet.

Följande diagram visar systemets arkitektur:

Diagram som visar arkitekturen för en Spring-webbapp.

I den här artikeln beskrivs följande alternativ för att skapa resurser och distribuera dem till Azure Spring Apps:

  • Azure Portal + Maven-plugin-alternativet ger 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:

  • Azure Portal + Maven-plugin-alternativet ger 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

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:

  1. 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
    
  2. 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-portalen 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:

  1. Välj Skapa en resurs i hörnet av Azure-portalen.

  2. Välj Beräkna>Azure Spring Apps.

  3. 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.
  4. Välj Granska och skapa för att granska dina val. Välj sedan Skapa för att etablera Azure Spring Apps-instansen.

  5. 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å instrumentpanelen i Azure-portalen som en genväg till tjänstens översiktssida.

    Skärmbild av Azure-portalen som visar fönstret Meddelanden för att skapa Azure Spring Apps.

  6. 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:

  1. Gå till Azure-portalen och välj Skapa en resurs.

  2. Välj Databaser>Azure-databas för PostgreSQL.

  3. Välj alternativet Flexibel serverdistribution.

    Skärmbild av Azure-portalen som visar alternativsidan Välj Azure Database for PostgreSQL-distribution.

  4. 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.
  5. Använd följande information för att konfigurera fliken Nätverk :

    • Anslut ivity-metod: Offentlig åtkomst (tillåtna IP-adresser)
    • Tillåt offentlig åtkomst från valfri Azure-tjänst i Azure till den här servern: vald
  6. 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.

  7. Gå till PostgreSQL-servern 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.

  8. Välj Databaser på navigeringsmenyn för att skapa en databas , till exempel att göra.

    Skärmbild av Azure-portalen som visar sidan Databaser med fönstret Skapa databas öppen.

3.4. Anslut appinstans till PostgreSQL-instans

Använd följande steg för att ansluta dina tjänstinstanser:

  1. Gå till din Azure Spring Apps-instans i Azure-portalen.

  2. Öppna Appar på navigeringsmenyn och välj sedan Skapa app.

  3. På sidan Skapa app fyller du i appnamnet simple-todo-api och väljer sedan Java-artefakter som distributionstyp .

  4. Välj Skapa för att slutföra skapandet av appen och välj sedan appen för att visa informationen.

  5. Gå till den app som du skapade i Azure-portalen. 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.

  6. Välj Tjänst Anslut eller i navigeringsfönstret och välj sedan Skapa för att skapa en ny tjänstanslutning.

    Skärmbild av Azure-portalen som visar enterprise plan Service Anslut eller-sidan med knappen Skapa markerad.

  7. Fyll i fliken Grundläggande med följande information:

    • Tjänsttyp: DB för Flexibel PostgreSQL-server
    • Anslut ionsnamn: 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

    Skärmbild av Azure-portalen som visar fliken Grundläggande i fönstret Skapa anslutning för anslutning till Service Bus.

  8. 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 Anslut ionssträng.
    • Fortsätt med...: Välj databasautentiseringsuppgifter
    • Användarnamn: myadmin
    • Lösenord: Ange ditt lösenord.

    Skärmbild av Azure-portalen som visar fliken Autentisering i fönstret Skapa anslutning med alternativet Anslut ionssträng markerat.

  9. Välj Nästa: Nätverk. Använd standardalternativet Konfigurera brandväggsregler för att aktivera åtkomst till måltjänsten.

  10. 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:

  1. Logga in på Azure-portalen.

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

  3. Sök efter och markera Microsoft Entra ID.

  4. Under Hantera väljer du Appregistreringar> Ny registrering.

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

  6. För Kontotyper som stöds väljer du Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Flera klientorganisationer) och personliga Microsoft-konton.

  7. Välj Registrera för att skapa programmet.

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

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

  10. 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 exempel api://simple-todo, och väljer sedan Spara.

  11. 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.
  12. Upprepa föregående steg för att lägga till de andra två omfången: ToDo.Write och ToDo.Delete.

    Skärmbild av Azure-portalen som visar sidan Exponera ett API i ett RESTful API-program.

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:

  1. Leta upp filen src/main/resources/application.yml för simple-todo-api appen. Uppdatera konfigurationen spring.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, consumerseller 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.

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

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

  1. Logga in på Azure-portalen.

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

  3. Sök efter och markera Microsoft Entra ID.

  4. Under Hantera väljer du Appregistreringar> Ny registrering.

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

  6. För kontotyper som stöds använder du endast standardvärdet Konton i den här organisationskatalogen.

  7. Välj Registrera för att skapa programmet.

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

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

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

    Skärmbild av Azure-portalen som visar API-behörigheterna för ett webbprogram.

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.

  1. Under Hantera väljer du Användare>Ny användare>Skapa ny användare.

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

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

  1. Öppna din Microsoft Entra ID-klientorganisation i Azure-portalen och gå till den registrerade ToDoWeb appen.

  2. Under Hantera väljer du Autentisering, lägger till en plattform och väljer sedan Ensidesprogram.

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

    Skärmbild av Azure-portalen som visar sidan Autentisering för 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:

  1. 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
    
  2. 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-portalen 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:

  1. Välj Skapa en resurs i hörnet av portalen.

  2. Välj Beräkna>Azure Spring Apps.

  3. 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.
  4. Välj Granska och skapa för att granska dina val. Välj sedan Skapa för att etablera Azure Spring Apps-instansen.

  5. 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å instrumentpanelen i Azure-portalen som en genväg till tjänstens översiktssida.

  6. Välj Gå till resurs för att öppna tjänstens översiktssida.

    Skärmbild av Azure-portalen som visar sidan Översikt med sidan Meddelanden öppen.

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:

  1. Gå till Azure-portalen och välj Skapa en resurs.

  2. Välj Databaser>Azure-databas för PostgreSQL.

  3. Välj alternativet Flexibel serverdistribution.

    Skärmbild av Azure-portalen som visar alternativsidan Välj Azure Database for PostgreSQL-distribution.

  4. 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.
  5. Använd följande information för att konfigurera fliken Nätverk :

    • Anslut ivity-metod: Offentlig åtkomst (tillåtna IP-adresser)
    • Tillåt offentlig åtkomst från valfri Azure-tjänst i Azure till den här servern: vald
  6. 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.

  7. Gå till PostgreSQL-servern 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.

  8. Välj Databaser på navigeringsmenyn för att skapa en databas , till exempel att göra.

    Skärmbild av Azure-portalen som visar sidan Databaser med fönstret Skapa databas öppen.

3.4. Anslut appinstans till PostgreSQL-instans

Använd följande steg för att ansluta dina tjänstinstanser:

  1. Gå till din Azure Spring Apps-instans i Azure-portalen.

  2. Öppna Appar på navigeringsmenyn och välj sedan Skapa app.

  3. På sidan Skapa app fyller du i appnamnet simple-todo-api och väljer Java-artefakter som distributionstyp .

  4. Välj Skapa för att slutföra skapandet av appen och välj appen för att visa informationen.

  5. Gå till den app som du skapade i Azure-portalen. 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.

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

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

    Skärmbild av Azure-portalen som visar fliken Miljövariabler med alla värden för PostgreSQL-anslutningen.

3.5. Exponera RESTful-API:er

Använd följande steg för att exponera dina RESTful-API:er i Microsoft Entra-ID:

  1. Logga in på Azure-portalen.

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

  3. Sök efter och markera Microsoft Entra ID.

  4. Under Hantera väljer du Appregistreringar> Ny registrering.

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

  6. För Kontotyper som stöds väljer du Konton i valfri organisationskatalog (Alla Microsoft Entra-kataloger – Flera klientorganisationer) och personliga Microsoft-konton.

  7. Välj Registrera för att skapa programmet.

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

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

  10. 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 exempel api://simple-todo, och väljer sedan Spara.

  11. 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.
  12. Upprepa föregående steg för att lägga till de andra två omfången: ToDo.Write och ToDo.Delete.

    Skärmbild av Azure-portalen som visar sidan Exponera ett API i ett RESTful API-program.

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:

  1. Leta upp filen src/main/resources/application.yml för simple-todo-api appen. Uppdatera konfigurationen spring.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, consumerseller 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.

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

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

  1. Logga in på Azure-portalen.

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

  3. Sök efter och markera Microsoft Entra ID.

  4. Under Hantera väljer du Appregistreringar> Ny registrering.

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

  6. För kontotyper som stöds använder du endast standardvärdet Konton i den här organisationskatalogen.

  7. Välj Registrera för att skapa programmet.

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

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

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

    Skärmbild av Azure-portalen som visar API-behörigheterna för ett webbprogram.

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.

  1. Under Hantera väljer du Användare>Ny användare>Skapa ny användare.

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

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

  1. Öppna din Microsoft Entra ID-klientorganisation i Azure-portalen och gå till den registrerade ToDoWeb appen.

  2. Under Hantera väljer du Autentisering, lägger till en plattform och väljer sedan Ensidesprogram.

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

    Skärmbild av Azure-portalen som visar sidan Autentisering för Microsoft Entra-ID.

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 :

  1. Öppna url:en som exponeras av appen och välj sedan Auktorisera för att förbereda OAuth2-autentiseringen.

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

  1. 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
    }
    
  2. 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
    }
    
  3. 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
      }
    ]
    
  4. 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
      }
    ]
    
  5. 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
    }
    
  6. 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:

  1. Leta reda på resursgruppen på Azure Portal.

  2. På navigeringsmenyn väljer du Resursgrupper. Välj sedan namnet på resursgruppen , till exempel myresourcegroup.

  3. 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:

  1. Leta reda på resursgruppen på Azure Portal.

  2. På navigeringsmenyn väljer du Resursgrupper. Välj sedan namnet på resursgruppen , till exempel myresourcegroup.

  3. 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: