Quickstart: RESTful API-toepassing implementeren in Azure Spring Apps
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
In dit artikel wordt beschreven hoe u een RESTful API-toepassing implementeert die wordt beveiligd door Microsoft Entra ID in Azure Spring Apps. Het voorbeeldproject is een vereenvoudigde versie op basis van de Simple Todo-webtoepassing , die alleen de back-endservice biedt en Microsoft Entra-id gebruikt om de RESTful-API's te beveiligen.
Deze RESTful-API's worden beveiligd door op rollen gebaseerd toegangsbeheer (RBAC) toe te passen. Anonieme gebruikers hebben geen toegang tot gegevens en mogen de toegang voor verschillende gebruikers niet beheren. Anonieme gebruikers hebben alleen de volgende drie machtigingen:
- Lezen: Met deze machtiging kan een gebruiker de ToDo-gegevens lezen.
- Schrijven: Met deze machtiging kan een gebruiker de ToDo-gegevens toevoegen of bijwerken.
- Verwijderen: Met deze machtiging kan een gebruiker de ToDo-gegevens verwijderen.
Nadat de implementatie is geslaagd, kunt u de API's bekijken en testen via de Swagger-gebruikersinterface.
In het volgende diagram ziet u de architectuur van het systeem:
In dit artikel worden de volgende opties beschreven voor het maken van resources en het implementeren ervan in Azure Spring Apps:
- De optie Azure Portal + Maven-invoegtoepassing biedt een conventionelere manier om resources te maken en toepassingen stap voor stap te implementeren. Deze optie is geschikt voor Spring-ontwikkelaars die azure-cloudservices voor het eerst gebruiken.
- De Azure Developer CLI-optie is een efficiëntere manier om automatisch resources te maken en toepassingen te implementeren via eenvoudige opdrachten. De Azure Developer CLI maakt gebruik van een sjabloon om de Benodigde Azure-resources in te richten en de toepassingscode te implementeren. Deze optie is geschikt voor Spring-ontwikkelaars die bekend zijn met Azure-cloudservices.
In dit artikel worden de volgende opties beschreven voor het maken van resources en het implementeren ervan in Azure Spring Apps:
- De optie Azure Portal + Maven-invoegtoepassing biedt een conventionelere manier om resources te maken en toepassingen stap voor stap te implementeren. Deze optie is geschikt voor Spring-ontwikkelaars die azure-cloudservices voor het eerst gebruiken.
- De Azure CLI-optie maakt gebruik van een krachtig opdrachtregelprogramma voor het beheren van Azure-resources. Deze optie is geschikt voor Spring-ontwikkelaars die bekend zijn met Azure-cloudservices.
1. Vereisten
Een Azure-abonnement. Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint.
Een van de volgende rollen:
- Globale beheerder of beheerder met bevoorrechte rol, voor het verlenen van toestemming voor apps die een machtiging aanvragen, voor elke API.
- Cloudtoepassingsbeheerder of toepassingsbeheerder, voor het verlenen van toestemming voor apps die toestemming vragen voor elke API, met uitzondering van Microsoft Graph-app-rollen (toepassingsmachtigingen).
- Een aangepaste maprol die de machtiging bevat voor het verlenen van machtigingen aan toepassingen, voor de machtigingen die vereist zijn voor de toepassing.
Zie Beheerderstoestemming voor de hele tenant verlenen aan een toepassing voor meer informatie.
Als u voor het eerst een Azure Spring Apps Enterprise-planexemplaren implementeert in het doelabonnement, raadpleegt u de sectie Vereisten van het Enterprise-plan in Azure Marketplace.
Git.
Java Development Kit (JDK), versie 17.
Een Microsoft Entra-tenant. Zie quickstart: Een nieuwe tenant maken in Microsoft Entra-id voor instructies voor het maken van een tenant.
Als u nog geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint.
Een van de volgende rollen:
- Globale beheerder of beheerder met bevoorrechte rol, voor het verlenen van toestemming voor apps die een machtiging aanvragen, voor elke API.
- Cloudtoepassingsbeheerder of toepassingsbeheerder, voor het verlenen van toestemming voor apps die toestemming vragen voor elke API, met uitzondering van Microsoft Graph-app-rollen (toepassingsmachtigingen).
- Een aangepaste maprol die de machtiging bevat voor het verlenen van machtigingen aan toepassingen, voor de machtigingen die vereist zijn voor de toepassing.
Zie Beheerderstoestemming voor de hele tenant verlenen aan een toepassing voor meer informatie.
Git.
Java Development Kit (JDK), versie 17.
Een Microsoft Entra-tenant. Zie quickstart: Een nieuwe tenant maken in Microsoft Entra-id voor instructies voor het maken van een tenant.
2. Het Spring-project voorbereiden
Als u de RESTful API-app wilt implementeren, moet u eerst het Spring-project voorbereiden om lokaal te worden uitgevoerd.
Gebruik de volgende stappen om de app lokaal te klonen en uit te voeren:
Gebruik de volgende opdracht om het voorbeeldproject te klonen vanuit GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Als u de app lokaal wilt uitvoeren, voert u eerst de stappen in de RESTful API's beschikbaar maken uit en werkt u eerst de configuratiesecties van de toepassing bij en gebruikt u vervolgens de volgende opdracht om de voorbeeldtoepassing uit te voeren met Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. De cloudomgeving voorbereiden
De belangrijkste resources die nodig zijn om deze voorbeeld-app uit te voeren, zijn een Azure Spring Apps-exemplaar en een Azure Database for PostgreSQL-exemplaar. In de volgende secties wordt beschreven hoe u deze resources maakt.
3.1. Meld u aan bij het Azure Portal
Ga naar Azure Portal en voer uw referenties in om u aan te melden bij de portal. De standaardweergave is uw service-dashboard.
3.2. Een Azure Spring Apps-exemplaar maken
Gebruik de volgende stappen om een Azure Spring Apps-service-exemplaar te maken:
Selecteer Een resource maken in de hoek van Azure Portal.
Selecteer Compute>Azure Spring Apps.
Vul het formulier Basisbeginselen in met de volgende gegevens:
Instelling Voorgestelde waarde Beschrijving Abonnement De naam van uw abonnement. Het Azure-abonnement dat u wilt gebruiken voor uw server. Als u meerdere abonnementen hebt, kiest u het abonnement waarin u wilt worden gefactureerd voor de resource. Resourcegroep myresourcegroup Een nieuwe resourcegroepnaam of een bestaande naam uit uw abonnement. Naam myasa Een unieke naam die uw Azure Spring Apps-service identificeert. De naam moet tussen de 4 en 32 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. Het eerste teken van de servicenaam moet een letter zijn en het laatste teken moet een letter of een cijfer zijn. Plannen Enterprise Het prijsplan waarmee de resource en kosten worden bepaald die zijn gekoppeld aan uw exemplaar. Regio De regio die zich het dichtst bij uw gebruikers bevindt. De locatie die zich het dichtst bij uw gebruikers bevindt. Zoneredundant Niet geselecteerd De optie voor het maken van uw Azure Spring Apps-service in een Azure-beschikbaarheidszone. Deze functie wordt momenteel niet ondersteund in alle regio's. Software-IP-plan Betalen per gebruik Het prijsplan waarmee u per gebruik kunt betalen met Azure Spring Apps. Voorwaarde Selected Het selectievakje overeenkomst dat is gekoppeld aan de Marketplace-aanbieding. U moet dit selectievakje inschakelen. Voorbeeldproject implementeren Niet geselecteerd De optie voor het gebruik van de ingebouwde voorbeeldtoepassing. Selecteer Controleren en Maken om uw selecties te controleren. Selecteer Vervolgens Maken om het Azure Spring Apps-exemplaar in te richten.
Selecteer het pictogram Meldingen (een klok) op de werkbalk om het implementatieproces te bewaken. Nadat de implementatie is voltooid, kunt u Vastmaken aan dashboard selecteren. Hiermee maakt u een tegel voor deze service op uw Azure Portal-dashboard als snelkoppeling naar de overzichtspagina van de service.
Selecteer Ga naar de resource om naar de overzichtspagina van Azure Spring Apps te gaan.
3.3. Het PostgreSQL-exemplaar voorbereiden
Gebruik de volgende stappen om een Azure Database for PostgreSQL-server te maken:
Ga naar Azure Portal en selecteer Een resource maken.
Selecteer Databases>Azure Database for PostgreSQL.
Selecteer de implementatieoptie Flexible Server.
Vul het tabblad Basisbeginselen in met de volgende informatie:
- Servernaam: my-demo-pgsql
- Regio: VS - oost
- PostgreSQL-versie: 14
- Workloadtype: Ontwikkeling
- Hoge beschikbaarheid inschakelen: niet geselecteerd
- Verificatiemethode: alleen PostgreSQL-verificatie
- Gebruikersnaam van beheerder: myadmin
- Wachtwoord en wachtwoord bevestigen: voer een wachtwoord in.
Gebruik de volgende informatie om het tabblad Netwerken te configureren:
- Connectiviteitsmethode: Openbare toegang (toegestane IP-adressen)
- Openbare toegang vanuit elke Azure-service binnen Azure tot deze server toestaan: geselecteerd
Selecteer Beoordelen en maken om uw selecties te controleren en selecteer Maken om de server in te richten. Deze bewerking kan enkele minuten duren.
Ga in het Azure Portal naar uw PostgreSQL-server. Zoek op de pagina Overzicht naar de servernaamwaarde en noteer deze voor later gebruik. U hebt deze nodig om de omgevingsvariabelen voor de app in Azure Spring Apps te configureren.
Selecteer Databases in het navigatiemenu om een database te maken, bijvoorbeeld taken.
3.4. App-exemplaar verbinden met PostgreSQL-exemplaar
Gebruik de volgende stappen om verbinding te maken met uw service-exemplaren:
Ga naar uw Azure Spring Apps-exemplaar in Azure Portal.
Open Apps in het navigatiemenu en selecteer App maken.
Vul op de pagina App maken de naam simple-todo-api van de app in en selecteer vervolgens Java-artefacten als het implementatietype.
Selecteer Maken om het maken van de app te voltooien en selecteer vervolgens de app om de details weer te geven.
Ga naar de app die u hebt gemaakt in Azure Portal. Selecteer op de pagina Overzicht het eindpunt toewijzen om het openbare eindpunt voor de app beschikbaar te maken. Sla de URL op voor toegang tot de app na de implementatie.
Selecteer Serviceconnector in het navigatiedeelvenster en selecteer vervolgens Maken om een nieuwe serviceverbinding te maken.
Vul het tabblad Basisbeginselen in met de volgende informatie:
- Servicetype: flexibele DB for PostgreSQL-server
- Verbindingsnaam: er wordt een automatisch gegenereerde naam ingevuld, die ook kan worden gewijzigd.
- Abonnement: selecteer uw abonnement.
- Flexibele PostgreSQL-server: my-demo-pgsql
- PostgreSQL-database: selecteer de database die u hebt gemaakt.
- Clienttype: SpringBoot
Configureer het tabblad Volgende: Verificatie met de volgende informatie:
- Selecteer het verificatietype dat u wilt gebruiken tussen uw rekenservice en doelservice.: Selecteer verbindingsreeks.
- Doorgaan met...: Databasereferenties selecteren
- Gebruikersnaam: myadmin
- Wachtwoord: voer uw wachtwoord in.
Selecteer Volgende: Netwerken. Gebruik de standaardoptie Firewallregels configureren om toegang tot de doelservice in te schakelen.
Selecteer Volgende: Controleren en Maken om uw selecties te controleren en selecteer vervolgens Maken om de verbinding te maken.
3.5. RESTful-API's beschikbaar maken
Gebruik de volgende stappen om uw RESTful-API's beschikbaar te maken in Microsoft Entra-id:
Meld u aan bij het Azure-portaal.
Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.
Zoek Microsoft Entra ID en selecteer deze.
Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld Todo. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
Voor ondersteunde accounttypen selecteert u Accounts in een organisatiemap (Elke Microsoft Entra-directory - Multitenant) en persoonlijke Microsoft-accounts.
Selecteer Registreren om de toepassing te maken.
Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt het nodig om het YAML-configuratiebestand voor dit project te configureren.
Selecteer onder Beheren een API beschikbaar maken, zoek de URI van de toepassings-id aan het begin van de pagina en selecteer vervolgens Toevoegen.
Accepteer op de pagina URI van de toepassings-id bewerken de voorgestelde URI voor de toepassings-id (
api://{client ID}
) of gebruik een betekenisvolle naam in plaats van de client-id, zoalsapi://simple-todo
en selecteer Opslaan.Selecteer onder Beheren een API>beschikbaar maken en voer vervolgens de volgende gegevens in:
- Voer ToDo.Read in als bereiknaam.
- Voor wie toestemming kan geven, selecteert u alleen Beheerders.
- Voer voor de weergavenaam van beheerderstoestemming de ToDo-gegevens in.
- Voer voor de beschrijving van beheerderstoestemming geverifieerde gebruikers toe om de ToDo-gegevens te lezen.
- Houd deze ingeschakeld voor State.
- Selecteer Bereik toevoegen.
Herhaal de vorige stappen om de andere twee bereiken toe te voegen: ToDo.Write en ToDo.Delete.
3.6. De toepassingsconfiguratie bijwerken
Gebruik de volgende stappen om het YAML-bestand bij te werken om uw geregistreerde Microsoft Entra-toepassingsgegevens te gebruiken om een relatie tot stand te brengen met de RESTful API-toepassing:
Zoek het bestand src/main/resources/application.yml voor de
simple-todo-api
app. Werk de configuratie in despring.cloud.azure.active-directory
sectie bij zodat deze overeenkomt met het volgende voorbeeld. Vervang de tijdelijke aanduidingen door de waarden die u eerder hebt gemaakt.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>
Notitie
In v1.0-tokens is voor de configuratie de client-id van de API vereist, terwijl u in v2.0-tokens de client-id of de URI van de toepassings-id in de aanvraag kunt gebruiken. U kunt beide configureren om de validatie van de doelgroep correct te voltooien.
De toegestane
tenant-id
waarden zijn:common
,organizations
,consumers
of de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.Gebruik de volgende opdracht om het voorbeeldproject opnieuw te bouwen:
./mvnw clean package
4. De app implementeren in Azure Spring Apps
U kunt de app nu implementeren in Azure Spring Apps.
Gebruik de volgende stappen om te implementeren met behulp van de Maven-invoegtoepassing voor Azure Spring Apps:
Navigeer naar de volledige map en voer vervolgens de volgende opdracht uit om de app te configureren in Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
In de volgende lijst worden de opdrachteninteracties beschreven:
- OAuth2-aanmelding: u moet de aanmelding bij Azure autoriseren op basis van het OAuth2-protocol.
- Abonnement selecteren: selecteer het abonnementslijstnummer van het Azure Spring Apps-exemplaar dat u hebt gemaakt. Dit is standaard het eerste abonnement in de lijst. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
- Gebruik bestaande Azure Spring Apps in Azure: Druk op y om het bestaande Azure Spring Apps-exemplaar te gebruiken.
- Selecteer Azure Spring Apps voor implementatie: selecteer het aantal Azure Spring Apps-exemplaren dat u hebt gemaakt. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
- Gebruik de bestaande app in Azure Spring Apps <uw exemplaarnaam>: Druk op y om de gemaakte app te gebruiken.
- Bevestig dat u alle bovenstaande configuraties wilt opslaan: Druk op y. Als u op n drukt, wordt de configuratie niet opgeslagen in de POM-bestanden.
Gebruik de volgende opdracht om de app te implementeren:
./mvnw azure-spring-apps:deploy
In de volgende lijst wordt de interactie met de opdracht beschreven:
- OAuth2-aanmelding: u moet de aanmelding bij Azure autoriseren op basis van het OAuth2-protocol.
Nadat de opdracht is uitgevoerd, ziet u in de volgende logboekberichten dat de implementatie is geslaagd:
[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. De app valideren
U hebt nu toegang tot de RESTful-API om te zien of deze werkt.
5.1. Een toegangstoken aanvragen
De RESTful-API's fungeren als een resourceserver, die wordt beveiligd door Microsoft Entra-id. Voordat u een toegangstoken verkrijgt, moet u een andere toepassing registreren in De Microsoft Entra-id en machtigingen verlenen aan de clienttoepassing, die de naam ToDoWeb
heeft.
De clienttoepassing registreren
Gebruik de volgende stappen om een toepassing te registreren in Microsoft Entra ID, die wordt gebruikt om de machtigingen voor de ToDo
app toe te voegen:
Meld u aan bij het Azure-portaal.
Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.
Zoek Microsoft Entra ID en selecteer deze.
Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld ToDoWeb. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
Gebruik voor ondersteunde accounttypen alleen de standaardwaardeAccounts in deze organisatiemap.
Selecteer Registreren om de toepassing te maken.
Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt het nodig om een toegangstoken te verkrijgen.
Selecteer API-machtigingen>Een machtiging toevoegen>Mijn API's. Selecteer de
ToDo
toepassing die u eerder hebt geregistreerd en selecteer vervolgens de machtigingen ToDo.Read, ToDo.Write en ToDo.Delete . Selecteer Machtigingen toevoegen.Selecteer Beheerderstoestemming verlenen voor <de naam> van uw tenant om beheerderstoestemming te verlenen voor de machtigingen die u hebt toegevoegd.
Gebruiker toevoegen voor toegang tot de RESTful-API's
Gebruik de volgende stappen om een lidgebruiker te maken in uw Microsoft Entra-tenant. Vervolgens kan de gebruiker de gegevens van de ToDo
toepassing beheren via RESTful-API's.
Selecteer onder Beheren de optie Nieuwe gebruiker Nieuwe>gebruiker> Maken.
Voer op de pagina Nieuwe gebruiker maken de volgende gegevens in:
- User principal name: Voer een naam in voor de gebruiker.
- Weergavenaam: Voer een weergavenaam in voor de gebruiker.
- Wachtwoord: Kopieer het automatisch gegenereerde wachtwoord in het vak Wachtwoord .
Notitie
Nieuwe gebruikers moeten de eerste aanmeldingsverificatie voltooien en hun wachtwoorden bijwerken, anders krijgt u een
AADSTS50055: The password is expired
foutmelding wanneer u het toegangstoken krijgt.Wanneer een nieuwe gebruiker zich aanmeldt, ontvangt deze een actie vereist prompt. Ze kunnen Vragen later kiezen om de validatie over te slaan.
Selecteer Beoordelen en maken om uw selecties te controleren. Selecteer Maken om de gebruiker te maken.
De OAuth2-configuratie voor Swagger UI-autorisatie bijwerken
Gebruik de volgende stappen om de OAuth2-configuratie voor Swagger UI-autorisatie bij te werken. Vervolgens kunt u gebruikers machtigen om toegangstokens te verkrijgen via de ToDoWeb
app.
Open uw Microsoft Entra ID-tenant in Azure Portal en ga naar de geregistreerde
ToDoWeb
app.Selecteer verificatie onder Beheren, selecteer Een platform toevoegen en selecteer vervolgens toepassing met één pagina.
Gebruik de indeling
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
als de OAuth2-omleidings-URL in het veld Omleidings-URI's en selecteer vervolgens Configureren.
2. Het Spring-project voorbereiden
Als u de RESTful API-app wilt implementeren, moet u eerst het Spring-project voorbereiden om lokaal te worden uitgevoerd.
Gebruik de volgende stappen om de app lokaal te klonen en uit te voeren:
Gebruik de volgende opdracht om het voorbeeldproject te klonen vanuit GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Als u de app lokaal wilt uitvoeren, voert u eerst de stappen in de RESTful API's beschikbaar maken uit en werkt u eerst de configuratiesecties van de toepassing bij en gebruikt u vervolgens de volgende opdracht om de voorbeeldtoepassing uit te voeren met Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. De cloudomgeving voorbereiden
De belangrijkste resources die nodig zijn om deze voorbeeld-app uit te voeren, zijn een Azure Spring Apps-exemplaar en een Azure Database for PostgreSQL-exemplaar. In de volgende secties wordt beschreven hoe u deze resources maakt.
3.1. Meld u aan bij het Azure Portal
Ga naar Azure Portal en voer uw referenties in om u aan te melden bij de portal. De standaardweergave is uw service-dashboard.
3.2. Een Azure Spring Apps-exemplaar maken
Gebruik de volgende stappen om een service-exemplaar te maken:
Selecteer Een resource maken in de hoek van de portal.
Selecteer Compute>Azure Spring Apps.
Vul het formulier Basisbeginselen in . Gebruik de volgende tabel als richtlijn voor het invullen van het formulier. De aanbevolen planwaarde is Standaardverbruik en toegewezen (preview).
Instelling Voorgestelde waarde Beschrijving Abonnement De naam van uw abonnement. Het Azure-abonnement dat u wilt gebruiken voor uw server. Als u meerdere abonnementen hebt, kiest u het abonnement waarin u wilt worden gefactureerd voor de resource. Resourcegroep myresourcegroup Een nieuwe resourcegroepnaam of een bestaande naam uit uw abonnement. Naam myasa Een unieke naam die uw Azure Spring Apps-service identificeert. De naam moet tussen de 4 en 32 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. Het eerste teken van de servicenaam moet een letter zijn en het laatste teken moet een letter of een cijfer zijn. Plannen Standaardverbruik en toegewezen (preview) Het prijsplan bepaalt de resources en kosten die aan uw exemplaar zijn gekoppeld. Regio De regio die zich het dichtst bij uw gebruikers bevindt. De locatie die het dichtst bij uw gebruikers is. Container Apps-omgeving myenvironment De optie om te selecteren welk Container Apps-omgevingsexemplementatie hetzelfde virtuele netwerk moet delen met andere services en resources. Gebruik de volgende tabel als richtlijn voor het maken van de Container Apps-omgeving:
Instelling Voorgestelde waarde Beschrijving Omgevingsnaam myenvironment Een unieke naam die uw Azure Container Apps Environment-service identificeert. Plannen Verbruik Het prijsplan bepaalt de resources en kosten die aan uw exemplaar zijn gekoppeld. Zoneredundant Uitgeschakeld De optie voor het maken van uw Container Apps Environment-service in een Azure-beschikbaarheidszone. Selecteer Controleren en Maken om uw selecties te controleren. Selecteer Vervolgens Maken om het Azure Spring Apps-exemplaar in te richten.
Selecteer het pictogram Meldingen (een klok) op de werkbalk om het implementatieproces te bewaken. Nadat de implementatie is voltooid, kunt u Vastmaken aan dashboard selecteren. Hiermee maakt u een tegel voor deze service op uw Azure Portal-dashboard als snelkoppeling naar de overzichtspagina van de service.
Selecteer Ga naar de resource om de overzichtspagina van de service te openen.
Belangrijk
Het workloadprofiel Verbruik heeft een factureringsmodel voor betalen per gebruik, zonder beginkosten. U wordt gefactureerd voor het toegewezen workloadprofiel op basis van de ingerichte resources. Zie Workloadprofielen in Prijzen voor Azure Container Apps en Azure Spring Apps voor meer informatie.
3.3. Het PostgreSQL-exemplaar voorbereiden
Gebruik de volgende stappen om een Azure Database for PostgreSQL-server te maken:
Ga naar Azure Portal en selecteer Een resource maken.
Selecteer Databases>Azure Database for PostgreSQL.
Selecteer de implementatieoptie Flexible Server.
Vul het tabblad Basisbeginselen in met de volgende informatie:
- Servernaam: my-demo-pgsql
- Regio: VS - oost
- PostgreSQL-versie: 14
- Workloadtype: Ontwikkeling
- Hoge beschikbaarheid inschakelen: niet geselecteerd
- Verificatiemethode: alleen PostgreSQL-verificatie
- Gebruikersnaam van beheerder: myadmin
- Wachtwoord en wachtwoord bevestigen: voer een wachtwoord in.
Gebruik de volgende informatie om het tabblad Netwerken te configureren:
- Connectiviteitsmethode: Openbare toegang (toegestane IP-adressen)
- Openbare toegang vanuit elke Azure-service binnen Azure tot deze server toestaan: geselecteerd
Selecteer Beoordelen en maken om uw selecties te controleren en selecteer Maken om de server in te richten. Deze bewerking kan enkele minuten duren.
Ga in het Azure Portal naar uw PostgreSQL-server. Zoek op de pagina Overzicht naar de servernaamwaarde en noteer deze voor later gebruik. U hebt deze nodig om de omgevingsvariabelen voor de app in Azure Spring Apps te configureren.
Selecteer Databases in het navigatiemenu om een database te maken, bijvoorbeeld taken.
3.4. App-exemplaar verbinden met PostgreSQL-exemplaar
Gebruik de volgende stappen om verbinding te maken met uw service-exemplaren:
Ga naar uw Azure Spring Apps-exemplaar in Azure Portal.
Open Apps in het navigatiemenu en selecteer App maken.
Vul op de pagina App maken de naam simple-todo-api in en selecteer Java-artefacten als het implementatietype.
Selecteer Maken om het maken van de app te voltooien en selecteer de app om de details weer te geven.
Ga naar de app die u hebt gemaakt in Azure Portal. Selecteer op de pagina Overzicht het eindpunt toewijzen om het openbare eindpunt voor de app beschikbaar te maken. Sla de URL op voor toegang tot de app na de implementatie.
Ga naar de app die u hebt gemaakt, vouw Instellingen uit en selecteer Configuratie in het navigatiemenu en selecteer vervolgens Omgevingsvariabelen om de omgevingsvariabelen in te stellen.
Voeg de volgende omgevingsvariabelen toe voor de PostgreSQL-verbinding en selecteer Opslaan om de update van de app-configuratie te voltooien. Vervang de tijdelijke aanduidingen door uw eigen waarden die u eerder hebt gemaakt.
Omgevingsvariabele Weergegeven als 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. RESTful-API's beschikbaar maken
Gebruik de volgende stappen om uw RESTful-API's beschikbaar te maken in Microsoft Entra-id:
Meld u aan bij het Azure-portaal.
Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.
Zoek Microsoft Entra ID en selecteer deze.
Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld Todo. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
Voor ondersteunde accounttypen selecteert u Accounts in een organisatiemap (Elke Microsoft Entra-directory - Multitenant) en persoonlijke Microsoft-accounts.
Selecteer Registreren om de toepassing te maken.
Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt het nodig om het YAML-configuratiebestand voor dit project te configureren.
Selecteer onder Beheren een API beschikbaar maken, zoek de URI van de toepassings-id aan het begin van de pagina en selecteer vervolgens Toevoegen.
Accepteer op de pagina URI van de toepassings-id bewerken de voorgestelde URI voor de toepassings-id (
api://{client ID}
) of gebruik een betekenisvolle naam in plaats van de client-id, zoalsapi://simple-todo
en selecteer Opslaan.Selecteer onder Beheren een API>beschikbaar maken en voer vervolgens de volgende gegevens in:
- Voer ToDo.Read in als bereiknaam.
- Voor wie toestemming kan geven, selecteert u alleen Beheerders.
- Voer voor de weergavenaam van beheerderstoestemming de ToDo-gegevens in.
- Voer voor de beschrijving van beheerderstoestemming geverifieerde gebruikers toe om de ToDo-gegevens te lezen.
- Houd deze ingeschakeld voor State.
- Selecteer Bereik toevoegen.
Herhaal de vorige stappen om de andere twee bereiken toe te voegen: ToDo.Write en ToDo.Delete.
3.6. De toepassingsconfiguratie bijwerken
Gebruik de volgende stappen om het YAML-bestand bij te werken om uw geregistreerde Microsoft Entra-toepassingsgegevens te gebruiken om een relatie tot stand te brengen met de RESTful API-toepassing:
Zoek het bestand src/main/resources/application.yml voor de
simple-todo-api
app. Werk de configuratie in despring.cloud.azure.active-directory
sectie bij zodat deze overeenkomt met het volgende voorbeeld. Vervang de tijdelijke aanduidingen door de waarden die u eerder hebt gemaakt.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>
Notitie
In v1.0-tokens is voor de configuratie de client-id van de API vereist, terwijl u in v2.0-tokens de client-id of de URI van de toepassings-id in de aanvraag kunt gebruiken. U kunt beide configureren om de validatie van de doelgroep correct te voltooien.
De toegestane
tenant-id
waarden zijn:common
,organizations
,consumers
of de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.Gebruik de volgende opdracht om het voorbeeldproject opnieuw te bouwen:
./mvnw clean package
4. De app implementeren in Azure Spring Apps
U kunt de app nu implementeren in Azure Spring Apps.
Gebruik de volgende stappen om te implementeren met behulp van de Maven-invoegtoepassing voor Azure Spring Apps:
Navigeer naar de volledige map en voer vervolgens de volgende opdracht uit om de app te configureren in Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
In de volgende lijst worden de opdrachteninteracties beschreven:
- OAuth2-aanmelding: u moet de aanmelding bij Azure autoriseren op basis van het OAuth2-protocol.
- Abonnement selecteren: selecteer het abonnementslijstnummer van het Azure Spring Apps-exemplaar dat u hebt gemaakt. Dit is standaard het eerste abonnement in de lijst. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
- Gebruik bestaande Azure Spring Apps in Azure: Druk op y om het bestaande Azure Spring Apps-exemplaar te gebruiken.
- Selecteer Azure Spring Apps voor implementatie: selecteer het aantal Azure Spring Apps-exemplaren dat u hebt gemaakt. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
- Gebruik de bestaande app in Azure Spring Apps <uw exemplaarnaam>: Druk op y om de gemaakte app te gebruiken.
- Bevestig dat u alle bovenstaande configuraties wilt opslaan: Druk op y. Als u op n drukt, wordt de configuratie niet opgeslagen in de POM-bestanden.
Gebruik de volgende opdracht om de app te implementeren:
./mvnw azure-spring-apps:deploy
In de volgende lijst wordt de interactie met de opdracht beschreven:
- OAuth2-aanmelding: u moet de aanmelding bij Azure autoriseren op basis van het OAuth2-protocol.
Nadat de opdracht is uitgevoerd, ziet u in de volgende logboekberichten dat de implementatie is geslaagd:
[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. De app valideren
U hebt nu toegang tot de RESTful-API om te zien of deze werkt.
5.1. Een toegangstoken aanvragen
De RESTful-API's fungeren als een resourceserver, die wordt beveiligd door Microsoft Entra-id. Voordat u een toegangstoken verkrijgt, moet u een andere toepassing registreren in De Microsoft Entra-id en machtigingen verlenen aan de clienttoepassing, die de naam ToDoWeb
heeft.
De clienttoepassing registreren
Gebruik de volgende stappen om een toepassing te registreren in Microsoft Entra ID, die wordt gebruikt om de machtigingen voor de ToDo
app toe te voegen:
Meld u aan bij het Azure-portaal.
Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.
Zoek Microsoft Entra ID en selecteer deze.
Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld ToDoWeb. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
Gebruik voor ondersteunde accounttypen alleen de standaardwaardeAccounts in deze organisatiemap.
Selecteer Registreren om de toepassing te maken.
Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt het nodig om een toegangstoken te verkrijgen.
Selecteer API-machtigingen>Een machtiging toevoegen>Mijn API's. Selecteer de
ToDo
toepassing die u eerder hebt geregistreerd en selecteer vervolgens de machtigingen ToDo.Read, ToDo.Write en ToDo.Delete . Selecteer Machtigingen toevoegen.Selecteer Beheerderstoestemming verlenen voor <de naam> van uw tenant om beheerderstoestemming te verlenen voor de machtigingen die u hebt toegevoegd.
Gebruiker toevoegen voor toegang tot de RESTful-API's
Gebruik de volgende stappen om een lidgebruiker te maken in uw Microsoft Entra-tenant. Vervolgens kan de gebruiker de gegevens van de ToDo
toepassing beheren via RESTful-API's.
Selecteer onder Beheren de optie Nieuwe gebruiker Nieuwe>gebruiker> Maken.
Voer op de pagina Nieuwe gebruiker maken de volgende gegevens in:
- User principal name: Voer een naam in voor de gebruiker.
- Weergavenaam: Voer een weergavenaam in voor de gebruiker.
- Wachtwoord: Kopieer het automatisch gegenereerde wachtwoord in het vak Wachtwoord .
Notitie
Nieuwe gebruikers moeten de eerste aanmeldingsverificatie voltooien en hun wachtwoorden bijwerken, anders krijgt u een
AADSTS50055: The password is expired
foutmelding wanneer u het toegangstoken krijgt.Wanneer een nieuwe gebruiker zich aanmeldt, ontvangt deze een actie vereist prompt. Ze kunnen Vragen later kiezen om de validatie over te slaan.
Selecteer Beoordelen en maken om uw selecties te controleren. Selecteer Maken om de gebruiker te maken.
De OAuth2-configuratie voor Swagger UI-autorisatie bijwerken
Gebruik de volgende stappen om de OAuth2-configuratie voor Swagger UI-autorisatie bij te werken. Vervolgens kunt u gebruikers machtigen om toegangstokens te verkrijgen via de ToDoWeb
app.
Open uw Microsoft Entra ID-tenant in Azure Portal en ga naar de geregistreerde
ToDoWeb
app.Selecteer verificatie onder Beheren, selecteer Een platform toevoegen en selecteer vervolgens toepassing met één pagina.
Gebruik de indeling
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
als de OAuth2-omleidings-URL in het veld Omleidings-URI's en selecteer vervolgens Configureren.
Het toegangstoken verkrijgen
Gebruik de volgende stappen om de OAuth 2.0-autorisatiecodestroommethode te gebruiken om een toegangstoken met Microsoft Entra-id te verkrijgen en vervolgens toegang te krijgen tot de RESTful API's van de ToDo
app:
Open de URL die door de app wordt weergegeven en selecteer Autoriseren om de OAuth2-verificatie voor te bereiden.
Voer in het venster Beschikbare autorisaties de client-id van de
ToDoWeb
app in het veld client_id in, selecteer alle bereiken voor het veld Bereiken , negeer het veld client_secret en selecteer Autoriseren om om te leiden naar de aanmeldingspagina van Microsoft Entra.
Nadat u het aanmelden met de vorige gebruiker hebt voltooid, keert u terug naar het venster Beschikbare autorisaties .
5.2. Toegang tot de RESTful-API's
Gebruik de volgende stappen om toegang te krijgen tot de RESTful API's van de ToDo
app in de Swagger-gebruikersinterface:
Selecteer de API POST /api/simple-todo/lists en selecteer vervolgens Uitproberen. Voer de volgende aanvraagtekst in en selecteer vervolgens Uitvoeren om een Takenlijst te maken.
{ "name": "My List" }
Nadat de uitvoering is voltooid, ziet u de volgende hoofdtekst van het antwoord:
{ "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null }
Selecteer de API POST /api/simple-todo/lists/{listId}/items en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in die u eerder hebt gemaakt, voer de volgende aanvraagtekst in en selecteer vervolgens Uitvoeren om een ToDo-item te maken.
{ "name": "My first ToDo item", "listId": "<ID-of-the-ToDo-list>", "state": "todo" }
Met deze actie wordt het volgende taakitem geretourneerd:
{ "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 }
Selecteer de API GET /api/simple-todo/lists en selecteer vervolgens Uitvoeren om takenlijsten op te vragen. Met deze actie worden de volgende takenlijsten geretourneerd:
[ { "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null } ]
Selecteer de API GET /api/simple-todo/lists/{listId}/items en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in die u eerder hebt gemaakt en selecteer vervolgens Uitvoeren om een query uit te voeren op de Takenitems. Met deze actie wordt het volgende taakitem geretourneerd:
[ { "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 } ]
Selecteer de API PUT /api/simple-todo/lists/{listId}/items/{itemId} en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in. Voer voor item-id de id van het ToDo-item in, voer de volgende hoofdtekst van de aanvraag in en selecteer vervolgens Uitvoeren om het ToDo-item bij te werken.
{ "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" }
Met deze actie wordt het volgende bijgewerkte ToDo-item geretourneerd:
{ "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 }
Selecteer de API DELETE /api/simple-todo/lists/{listId}/items/{itemId} en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in. Voer voor item-id de item-id Van ToDo in en selecteer Vervolgens Uitvoeren om het ToDo-item te verwijderen. U ziet dat de antwoordcode van de server is
204
.
6. Resources opschonen
U kunt de Azure-resourcegroep verwijderen, met alle resources uit de resourcegroep.
Gebruik de volgende stappen om de hele resourcegroep te verwijderen, inclusief de zojuist gemaakte service:
Zoek de resourcegroep in Azure Portal.
Selecteer Resourcegroepen in het navigatiemenu. Selecteer vervolgens de naam van uw resourcegroep, bijvoorbeeld myresourcegroup.
Selecteer Verwijderen op de pagina van de resourcegroep. Voer de naam van uw resourcegroep in het tekstvak in om het verwijderen te bevestigen, bijvoorbeeld myresourcegroup. Selecteer vervolgens Verwijderen.
Gebruik de volgende stappen om de hele resourcegroep te verwijderen, inclusief de zojuist gemaakte service:
Zoek de resourcegroep in Azure Portal.
Selecteer Resourcegroepen in het navigatiemenu. Selecteer vervolgens de naam van uw resourcegroep, bijvoorbeeld myresourcegroup.
Selecteer Verwijderen op de pagina van de resourcegroep. Voer de naam van uw resourcegroep in het tekstvak in om het verwijderen te bevestigen, bijvoorbeeld myresourcegroup. Selecteer vervolgens Verwijderen.
7. Volgende stappen
Raadpleeg voor meer informatie de volgende artikelen: