gebeurtenis
17 mrt, 21 - 21 mrt, 10
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registrerenDeze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
In deze zelfstudie leert u hoe u Azure Functions configureert om verbinding te maken met Azure Service Bus-wachtrijen met behulp van beheerde identiteiten, in plaats van geheimen die zijn opgeslagen in de instellingen van de functie-app. De zelfstudie is een voortzetting van de zelfstudie Een functie-app maken zonder standaardopslaggeheimen in de definitiezelfstudie . Zie Een op identiteit gebaseerde verbinding configureren voor meer informatie over op identiteit gebaseerde verbindingen.
Hoewel de weergegeven procedures in het algemeen werken voor alle talen, ondersteunt deze zelfstudie momenteel C#-klassenbibliotheekfuncties in Windows.
In deze zelfstudie leert u het volgende:
Voltooi de vorige zelfstudie: Een functie-app maken met op identiteit gebaseerde verbindingen.
Kies in Azure Portal een resource maken (+).
Zoek en selecteer Service Bus op de pagina Een resource maken en selecteer deze en selecteer vervolgens Maken.
Gebruik op de pagina Basisinformatie de volgende tabel om de instellingen voor de Service Bus-naamruimte te configureren. Gebruik de standaardwaarden voor de resterende opties.
Optie | Voorgestelde waarde | Beschrijving |
---|---|---|
Abonnement | Uw abonnement | Het abonnement waarmee deze nieuwe resources zijn gemaakt. |
Resourcegroep | myResourceGroup | De resourcegroep die u hebt gemaakt met uw functie-app. |
Naam van naamruimte | Wereldwijd unieke naam | De naamruimte van uw exemplaar waaruit u de functie wilt activeren. Omdat de naamruimte openbaar toegankelijk is, moet u een naam gebruiken die wereldwijd uniek is in Azure. De naam moet ook tussen de 6 en 50 tekens lang zijn, alleen alfanumerieke tekens en streepjes bevatten en mag niet beginnen met een getal. |
Location | myFunctionRegion | De regio waar u uw functie-app hebt gemaakt. |
Prijscategorie | Basis | De Basic Service Bus-laag. |
Selecteer Controleren + maken. Nadat de validatie is voltooid, selecteert u Maken.
Nadat de implementatie is voltooid, selecteert u Ga naar de resource.
Selecteer + Wachtrij in uw nieuwe Service Bus-naamruimte om een wachtrij toe te voegen.
Voer myinputqueue in als de naam van de nieuwe wachtrij en selecteer Maken.
Nu u een wachtrij hebt, kunt u een roltoewijzing toevoegen aan de beheerde identiteit van uw functie-app.
Als u Service Bus-triggers wilt gebruiken met op identiteit gebaseerde verbindingen, moet u de roltoewijzing Azure Service Bus-gegevensontvanger toevoegen aan de beheerde identiteit in uw functie-app. Deze rol is vereist wanneer u beheerde identiteiten gebruikt om uw Service Bus-naamruimte te activeren. U kunt ook uw eigen account toevoegen aan deze rol, zodat u tijdens lokale tests verbinding kunt maken met de Service Bus-naamruimte.
Notitie
Rolvereisten voor het gebruik van op identiteit gebaseerde verbindingen variëren, afhankelijk van de service en hoe u er verbinding mee maakt. De behoeften variëren per trigger, invoerbindingen en uitvoerbindingen. Zie de trigger- en bindingsdocumentatie voor de service voor meer informatie over specifieke rolvereisten.
Selecteer toegangsbeheer (IAM) in uw Service Bus-naamruimte die u hebt gemaakt. Op deze pagina kunt u bekijken en configureren wie toegang heeft tot de resource.
Selecteer + Toevoegen en selecteer Roltoewijzing toevoegen.
Zoek naar Azure Service Bus-gegevensontvanger, selecteer deze en selecteer vervolgens Volgende.
Kies op het tabblad Leden onder Toegang toewijzen aan beheerde identiteit
Selecteer Leden selecteren om het deelvenster Beheerde identiteiten selecteren te openen.
Controleer of het abonnement het abonnement is waarin u de resources eerder hebt gemaakt.
Kies in de beheerde identiteitskiezer de functie-app in de categorie Door het systeem toegewezen beheerde identiteit. Het label Functie-app heeft mogelijk een getal tussen haakjes ernaast, waarmee het aantal apps in het abonnement wordt aangegeven met door het systeem toegewezen identiteiten.
Uw app moet worden weergegeven in een lijst onder de invoervelden. Als u dit niet ziet, kunt u het selectievakje Selecteren gebruiken om de resultaten te filteren met de naam van uw app.
Selecteer uw toepassing. Deze moet omlaag gaan naar de sectie Geselecteerde leden . Selecteer Selecteren.
Selecteer Controleren en toewijzen in het scherm Roltoewijzing toevoegen. Controleer de configuratie en selecteer Beoordelen en toewijzen.
U hebt uw functie-app toegang verleend tot de Service Bus-naamruimte met behulp van beheerde identiteiten.
Zoek in de portal naar de functie-app die u in de vorige zelfstudie hebt gemaakt of blader ernaar op de pagina Functie-app .
Vouw in uw functie-app Instellingen uit en selecteer vervolgens Omgevingsvariabelen.
Selecteer + Toevoegen om een instelling te maken op het tabblad App-instellingen. Gebruik de informatie in de volgende tabel om de naam en waarde voor de nieuwe instelling in te voeren:
Naam | Weergegeven als | Beschrijving |
---|---|---|
ServiceBusConnection__fullyQualifiedNamespace | <>SERVICE_BUS_NAMESPACE.servicebus.windows.net | Met deze instelling wordt uw functie-app verbonden met Service Bus met behulp van een op identiteit gebaseerde verbinding in plaats van geheimen. |
Selecteer Toepassen en selecteer Vervolgens Toepassen en Bevestigen om uw wijzigingen op te slaan en de app-functie opnieuw op te starten.
Notitie
Wanneer u Azure-app Configuratie of Key Vault gebruikt om instellingen voor managed identity-verbindingen te bieden, moet het instellen van namen een geldig sleutelscheidingsteken gebruiken, zoals :
of/
, in plaats van de __
naam om ervoor te zorgen dat namen correct worden omgezet.
Bijvoorbeeld: ServiceBusConnection:fullyQualifiedNamespace
.
Nu u de functie-app hebt voorbereid om verbinding te maken met de Service Bus-naamruimte met behulp van een beheerde identiteit, kunt u een nieuwe functie toevoegen die gebruikmaakt van een Service Bus-trigger voor uw lokale project.
Voer de func init
opdracht als volgt uit om een functions-project te maken in een map met de naam LocalFunctionProj met de opgegeven runtime:
func init LocalFunctionProj --dotnet
Navigeer naar de projectmap:
cd LocalFunctionProj
Voer in de hoofdprojectmap de volgende opdracht uit:
dotnet add package Microsoft.Azure.WebJobs.Extensions.ServiceBus --version 5.2.0
Met deze opdracht wordt de standaardversie van het Service Bus-extensiepakket vervangen door een versie die beheerde identiteiten ondersteunt.
Voer de volgende opdracht uit om een door Service Bus geactiveerde functie toe te voegen aan het project:
func new --name ServiceBusTrigger --template ServiceBusQueueTrigger
Met deze opdracht wordt de code voor een nieuwe Service Bus-trigger en een verwijzing naar het extensiepakket toegevoegd. U moet een verbindingsinstelling voor de Service Bus-naamruimte toevoegen voor deze trigger.
Open het nieuwe ServiceBusTrigger.cs projectbestand en vervang de ServiceBusTrigger
klasse door de volgende code:
public static class ServiceBusTrigger
{
[FunctionName("ServiceBusTrigger")]
public static void Run([ServiceBusTrigger("myinputqueue",
Connection = "ServiceBusConnection")]string myQueueItem, ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}
}
In dit codevoorbeeld wordt de naam van de wachtrij bijgewerkt myinputqueue
. Dit is dezelfde naam als de wachtrij die u eerder hebt gemaakt. Ook wordt de naam van de Service Bus-verbinding ingesteld op ServiceBusConnection
. Deze naam is de Service Bus-naamruimte die wordt gebruikt door de op identiteit gebaseerde verbinding ServiceBusConnection__fullyQualifiedNamespace
die u in de portal hebt geconfigureerd.
Notitie
Als u uw functies nu probeert uit te voeren met behulp van func start
, krijgt u een foutmelding. Dit komt doordat u geen lokaal op identiteit gebaseerde verbinding hebt gedefinieerd. Als u de functie lokaal wilt uitvoeren, stelt u de app-instelling ServiceBusConnection__fullyQualifiedNamespace
in local.settings.json
zoals u hebt gedaan in [de vorige sectie](#connect-naar-de service-bus-in-your-function-app). Daarnaast moet u de rol toewijzen aan uw ontwikkelaarsidentiteit. Zie lokale ontwikkeling met op identiteit gebaseerde verbindingen voor meer informatie.
Notitie
Wanneer u Azure-app Configuratie of Key Vault gebruikt om instellingen voor beheerde identiteitverbindingen te bieden, moeten instellingsnamen een geldig sleutelscheidingsteken gebruiken, zoals :
of /
in plaats van de __
sleutelkluis om ervoor te zorgen dat namen correct worden omgezet.
Bijvoorbeeld: ServiceBusConnection:fullyQualifiedNamespace
.
Voer de volgende opdracht uit om lokaal de bestanden te genereren die nodig zijn voor het implementatiepakket:
dotnet publish --configuration Release
Blader naar de \bin\Release\netcoreapp3.1\publish
submap en maak een .zip bestand op basis van de inhoud.
Publiceer het .zip-bestand door de volgende opdracht uit te voeren, de FUNCTION_APP_NAME
en RESOURCE_GROUP_NAME
parameters te vervangen, indien PATH_TO_ZIP
van toepassing:
az functionapp deploy -n FUNCTION_APP_NAME -g RESOURCE_GROUP_NAME --src-path PATH_TO_ZIP
Nu u de functie-app hebt bijgewerkt met de nieuwe trigger, kunt u controleren of deze werkt met behulp van de identiteit.
Zoek Application Insights
en selecteer Application Insights onder Services in de portal.
Blader of zoek in Application Insights naar uw benoemde exemplaar.
Selecteer in uw exemplaar Live Metrics onder Onderzoeken.
Houd het vorige tabblad geopend en open Azure Portal op een nieuw tabblad. Ga op het nieuwe tabblad naar uw Service Bus-naamruimte en selecteer Wachtrijen in het linkermenu.
Selecteer uw wachtrij met de naam myinputqueue
.
Selecteer Service Bus Explorer in het linkermenu.
Een testbericht verzenden.
Selecteer het geopende tabblad Live Metrics en bekijk de uitvoering van de Service Bus-wachtrij.
Gefeliciteerd U hebt uw Service Bus-wachtrijtrigger ingesteld met een beheerde identiteit.
In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Als u deze resources in de toekomst waarschijnlijk niet nodig hebt, kunt u ze verwijderen door de resourcegroep te verwijderen.
Selecteer Resourcegroepen in het menu of op de beginpagina van de Azure-portal. Selecteer myResourceGroup op de pagina Resourcegroepen.
Controleer op de pagina myResourceGroup of de weergegeven resources de resources zijn die u wilt verwijderen.
Selecteer Resourcegroep verwijderen, typ myResourceGroup in het tekstvak om dit te bevestigen en selecteer Verwijderen.
In deze zelfstudie hebt u een functie-app gemaakt met op identiteit gebaseerde verbindingen.
Ga naar het volgende artikel voor meer informatie over het beheren van identiteiten.
gebeurtenis
17 mrt, 21 - 21 mrt, 10
Neem deel aan de meetup-serie om schaalbare AI-oplossingen te bouwen op basis van praktijkgebruiksvoorbeelden met collega-ontwikkelaars en experts.
Nu registrerenTraining
Module
Op rollen gebaseerd toegangsbeheer en beheerde identiteitsverificatie implementeren in Azure OpenAI met .NET.
Certificering
Microsoft Gecertificeerd: Identiteits- en Toegangsbeheerbeheerder Associate - Certifications
Demonstreer de functies van Microsoft Entra ID om identiteitsoplossingen te moderniseren, hybride oplossingen te implementeren en identiteitsbeheer te implementeren.
Documentatie
Een functie-app maken zonder standaardopslaggeheimen in de definitie - Azure Functions
Meer informatie over het verwijderen van opslag verbindingsreeks s uit de definitie van uw functie-app en het gebruik van op identiteit gebaseerde verbindingen.
Zelfstudie: Beheerde identiteit voor het aanroepen van Azure Functions
Meer informatie over het gebruik van een beheerde identiteit om Azure Functions aan te roepen vanuit een Azure Spring Apps-app.
Richtlijnen voor het ontwikkelen van Azure Functions
Meer informatie over de concepten en technieken van Azure Functions die u nodig hebt om functies te ontwikkelen in Azure, in alle programmeertalen en bindingen.