Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Functions op Azure Container Apps biedt een volledig beheerde serverloze hostingomgeving die de gebeurtenisgestuurde mogelijkheden van Azure Functions combineert met de robuuste functies van Container Apps. Deze integratie omvat geavanceerde mogelijkheden, zoals indeling op basis van Kubernetes, ingebouwde automatische schaalaanpassing, mogelijk gemaakt door KEDA (Op Kubernetes gebaseerde op gebeurtenissen gebaseerde automatische schaalaanpassing), Dapr -integratie (Distributed Application Runtime), GPU-workloadondersteuning, sidecar-ondersteuning, VNet-connectiviteit (virtueel netwerk) en revisiebeheer.
Deze benadering is handig als u wilt dat uw functies worden uitgevoerd naast andere container-apps, zoals microservices, API's of websites. Verder kan het containeriseren van uw functie-apps helpen wanneer u aangepaste afhankelijkheden nodig hebt of wilt profiteren van schaal-naar-nul voor kostenbesparingen. Als u rekenkrachtige taken uitvoert, zoals AI-deductie, ondersteunt Container Apps ook hosting op basis van GPU via serverloze GPU-aanbiedingen en toegewezen workloadprofielen.
Als geïntegreerde functie op Azure Container Apps kunt u Azure Functions installatiekopieën rechtstreeks op Azure Container Apps implementeren met behulp van de Microsoft.App resourceprovider door kind=functionapp in te stellen bij het aanroepen van az containerapp create. Apps die op deze manier zijn gemaakt, hebben toegang tot alle Azure Container Apps functies. Als u implementeert via Azure-portal, kunt u de optie Optimize for Functions inschakelen tijdens de installatie. Zie de sectie Implementatie en installatie voor meer informatie.
Belangrijkste voordelen
Het Container Apps-hostingmodel bouwt voort op de flexibiliteit van in containers geplaatste workloads en de gebeurtenisgestuurde aard van Azure Functions. Het biedt de volgende belangrijke voordelen:
- Run Azure Functions als containers met aangepaste afhankelijkheden en taalstacks.
- Inschalen naar nul en uitschalen naar 1000 exemplaren met keda.
- Beveilig netwerken met volledige VNet-integratie.
- Geavanceerde container-app-functies zoals multirevisies, verkeer splitsen, Dapr-integratie en waarneembaarheidsonderdelen.
- Serverloze en toegewezen GPU-ondersteuning voor rekenintensieve workloads.
- Unified Container Apps-omgeving voor het uitvoeren van Functies naast microservices, API's en achtergrondtaken.
De volgende tabel helpt u bij het vergelijken van de functies van Functions in Container Apps met een Flex-verbruiksabonnement.
| Eigenschap | Container-toepassingen | Flex Verbruiksplan |
|---|---|---|
| Schaal naar nul | ✅ Ja (via KEDA) | ✅ Ja |
| Maximale uitschaling | 1000 (standaard 10, configureerbaar) | 1,000 |
| Always-on-exemplaren |
✅ Ja (via minReplicas) |
✅ Ja (via altijd gereede instanties) |
| VNet-integratie | ✅ Ja | ✅ Ja |
| Ondersteuning voor aangepaste containers | ✅ Ja (gebruik je eigen afbeelding) | ❌ Beperkt (geen breng je eigen container mee) |
| GPU-ondersteuning | ✅ Ja (via een toegewezen GPU-workloadprofiel voor serverloze GPU) | ❌ Nee |
| Ingebouwde functies | Ondersteuning voor Container Apps-functies. Bijvoorbeeld KEDA, Dapr, multi-revisions, mTLS, sidecars, toegangsbeheer en meer | Uitsluitend functies |
| Betaalmodel | Prijzen voor Container Apps: Verbruiksabonnement (vCPU, geheugen, aanvragen) & Toegewezen plan (op basis van workloadprofielen) | Uitvoeringstijd + altijd gereede exemplaren |
Zie Functies schalen en hostingopties voor een volledige vergelijking van de Functies op Container Apps tegenover het Flexverbruiksplan en alle andere abonnement- en hostingtypen.
Scenariën
Azure Functions in Container Apps zijn ideaal voor een breed scala aan gebruiksvoorbeelden, met name wanneer u gebeurtenisgestuurde uitvoering, containerflexiteit of veilige integratie met andere services nodig hebt:
- Line-Of-Business-API's: Aangepaste bibliotheken, pakketten en API's verpakken met Azure Functions voor Line-Of-Business-toepassingen.
- Migratie en modernisering: Migratie van on-premises verouderde en/of monolith-toepassingen naar cloudeigen microservices op containers.
- Gebeurtenisgestuurde verwerking: Gebeurtenissen van Event Grid, Service Bus, Event Hubs en andere gebeurtenisbronnen verwerken met gemak van het Functions-programmeermodel.
- AI- en GPU-workloads: Serverloze workloadverwerking van video's, afbeeldingen, transcripties of andere verwerkingsintensieve taken waarvoor GPU-rekenresources zijn vereist. Zie Using serverless GPU's in Azure Container Apps voor meer informatie.
- Microservices: Integreer Azure Functions met andere services die door Container Apps worden gehost.
- Aangepaste containers: Pakketfuncties met aangepaste runtimes of sidecars.
- Privé-apps: Beveilig interne functies met behulp van VNet en intern inkomend verkeer.
- .NET Aspire: Met de integratie van .NET Aspire met Azure Functions kunt u een Azure Functions .NET project ontwikkelen, fouten opsporen en indelen als onderdeel van de .NET Aspire app-host. Lees meer over Azure Functions met .NET Aspire
- General Functions: Alle ondersteunde standaardscenario's Azure Functions uitvoeren (bijvoorbeeld timers, bestandsverwerking, databasetriggers).
Implementatie en configuratie
Als u Azure Functions op Azure Container Apps wilt implementeren, verpakt u uw Functions-app als een aangepaste containerinstallatiekopieën en implementeert u deze net als elke andere container-app met één belangrijk verschil. U moet de eigenschap kind=functionapp instellen wanneer u de sjablonen voor Azure CLI of ARM/Bicep gebruikt. Raadpleeg de officiële documentatie om aan de slag te gaan voor gedetailleerde stappen en voorbeelden.
az containerapp create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $ENVIRONMENT_NAME \
--image mcr.microsoft.com/k8se/quickstart-functions:latest \
--ingress external \
--target-port 80 \
--kind functionapp \
--query properties.outputs.fqdn
Met deze opdracht wordt de URL van uw Functions-app geretourneerd. Kopieer deze URL en plak deze in een webbrowser.
Selecteer in de Azure-portal de optie Optimize voor Azure Functions tijdens het maken van de container-app om de installatie te stroomlijnen.
Alle standaardimplementatiemethoden worden ondersteund, waaronder:
- Azure CLI
- Azure portal
- ARM-sjablonen/Bicep
- CI/CD-pijplijnen (bijvoorbeeld GitHub Actions, Azure-pipelines)
Raadpleeg de officiële documentatie om aan de slag te gaan voor gedetailleerde stappen en voorbeelden.
Prijsstelling en facturering
Azure Functions op Azure Container Apps volgen hetzelfde prijsmodel als Azure Container Apps. Facturering is gebaseerd op het abonnementstype dat u selecteert voor uw omgeving. Dit kan Consumption of Dedicated zijn.
- Verbruiksabonnement: Deze serverloze rekenoptie factureert u alleen voor de resources die uw apps gebruiken terwijl ze worden uitgevoerd.
- Toegewezen plan: deze optie biedt aangepaste rekenresources en rekent kosten aan voor de exemplaren die zijn toegewezen aan elk workloadprofiel.
Uw keuze voor het abonnement bepaalt hoe factureringsberekeningen worden gemaakt. Verschillende toepassingen in een omgeving kunnen verschillende abonnementen gebruiken.
Belangrijke punten om te noteren:
- Er worden geen extra kosten in rekening gebracht voor het gebruik van het Azure Functions programmeermodel in Container Apps.
- Durable Functions en andere geavanceerde patronen worden ondersteund en gefactureerd onder hetzelfde Container Apps-prijsmodel. Raadpleeg de documentatie Billing in Azure Container Apps voor gedetailleerde factureringsmechanica en voorbeelden.
Schaalvergroting gestuurd door gebeurtenissen
Azure Functions op Container Apps ondersteunen alle belangrijke programmeertaal-runtimes die beschikbaar zijn in Azure Functions, waaronder C#, JavaScript/TypeScript (Node.js), Python, Java, PowerShell en Aangepaste containers (breng je eigen image mee).
Azure Functions uitgevoerd op Azure Container Apps automatische schaalregels configureren op basis van de gebeurtenisbron, waardoor handmatige KEDA-schaalregeldefinities niet meer nodig zijn. Daarom is de knop 'Schaalregels toevoegen' in de Azure-portal uitgeschakeld voor Functions in Container Apps. U kunt echter nog steeds minimum- en maximumaantal replica's definiëren om schaalgrenzen vast te stellen en controle te houden over de toewijzing van resources.
Het platform vertaalt uw Functions-triggerparameters (van host.json configuratie- of triggerkenmerken) automatisch naar de juiste KEDA-schaalparameters. Zie Azure Functions KEDA-schaaltoewijzingen voor een gedetailleerd overzicht van hoe triggerconfiguraties van Functions overeenkomen met KEDA-schaalparameters.
Alle standaard Azure Functions triggers en bindingen worden ondersteund in Container Apps met de volgende exceptions:
- Blob Storage Automatisch schalen activeren: werkt alleen wanneer u Event Grid als bron gebruikt. Meer informatie over het triggeren van Azure Functions voor blobcontainers met een gebeurtenisabonnement
- Durable Functions automatisch schalen: ondersteunt alleen opslagproviders van MSSQL (Microsoft SQL Server) en DTS (Durable Task Scheduler). Zie meer richtlijnen voor het implementeren van Durable Functions met MSSQL
- Automatisch schalen wordt niet ondersteund voor:
- Azure Cache voor Redis
- Azure SQL
Beheerde identiteiten worden ondersteund voor triggers en bindingen die dit toestaan. Ze zijn ook beschikbaar voor:
- Standaardopslagaccount (AzureWebJobsStorage)
- Azure Container Registry (ACR)
- Verbinding maken met trigger-gebeurtenisbronnen
Gebruik voor niet-ondersteunde triggers vaste replicaaantallen (dat wil gezegd minReplicas instellen > 0) in Azure Functions op Azure Container Apps. Zie de ontwikkelaarshandleiding voor Functions voor meer informatie.
Schaalbaarheid en prestaties
Azure Functions op Container Apps worden automatisch geschaald op basis van gebeurtenissen met KEDA, zonder dat u handmatig schaalregels hoeft te configureren. U kunt nog steeds min/max replica's instellen om het schaalgedrag te beheren.
- Event-gedreven schalen: automatisch schalen op basis van triggers zoals Event Grid, Service Bus of HTTP.
- Schalen naar nul: inactiviteit van apps inschalen naar nul om kosten te besparen.
- Cold start control: Leer meer over het verminderen van de koude opstarttijd op Azure Container Apps.
- Gelijktijdigheid: elk exemplaar kan meerdere gebeurtenissen parallel verwerken.
- Grote schaal: uitschalen naar 1000 exemplaren per app (standaard is 10).
- GPU-ondersteuning: Rekenworkloads uitvoeren zoals AI-deductie met GPU-ondersteuning.
Dit maakt Container Apps ideaal voor zowel piekbelastingen als constante workloads. Zie
Netwerken en beveiliging
Azure Functions op Container Apps profiteren van de robuuste functies van Container Apps networking en beveiligingsfuncties voor veilige, schaalbare implementaties:
- VNet-integratie: Toegang tot privébronnen veilig via interne eindpunten en privédatabases.
- Managed identity: Verifiëren met Azure services met behulp van door het systeem/de gebruiker toegewezen identiteiten, geen geheimen of verbindingsreeksen nodig.
- Dapr-ondersteuning: Schakel pub/sub, statusbeheer en veilige serviceaanroepen in via Dapr-sidecars. Zie Microservice-API's van Dapr voor meer informatie.
- Inkomend verkeer en TLS: beveiligde HTTP-eindpunten beschikbaar maken met TLS/mTLS, aangepaste domeinen of intern houden.
- Omgevingsisolatie: Functies delen de grenzen van de Container Apps-omgeving voor veilige, doelgerichte communicatie.
Deze mogelijkheden maken container-apps-gehoste functies ideaal voor serverloze toepassingen op bedrijfsniveau.
Bewaking en logboekregistratie
Azure Functions in Container Apps kan naadloos worden geïntegreerd met de waarneembaarheidshulpprogramma's van Azure voor het bijhouden van prestaties en diagnose van problemen:
- Application Insights: Biedt telemetrie voor aanvragen, afhankelijkheden, uitzonderingen en aangepaste traceringen. Zie Monitor Azure Functions voor meer informatie.
- Log Analytics: Legt de levenscyclus van containers vast en schaalt gebeurtenissen (bijvoorbeeld Vermeldingen van FunctionsScalerInfo). Zie Application Logging in Azure Container Apps voor meer informatie.
- Aangepaste logboekregistratie: Ondersteunt standaardframeworks zoals ILogger en consolelogboekregistratie voor gestructureerde uitvoer.
- Gecentraliseerde bewaking: Container Apps-omgeving biedt geïntegreerde dashboards en waarschuwingen voor alle apps.
Omgevingsvariabelen
Azure Functions die worden uitgevoerd in Container Apps, hebben toegang tot door het systeem geleverde omgevingsvariabelen. De CONTAINER_NAME omgevingsvariabele wordt automatisch ingesteld op de replicanaam voor uw functie-app. Gebruik deze variabele voor logboekregistratie, correlatie en foutopsporing in scenario's met meerdere replica's.
Zie Omgevingsvariabelen in Azure Container Apps voor een volledige lijst met door het systeem geleverde omgevingsvariabelen.
Overwegingen
Houd rekening met deze andere overwegingen bij het gebruik van Azure Functions op Azure Container Apps:
- Vereiste voor inkomend verkeer voor automatisch schalen: als u automatisch schalen wilt inschakelen op basis van gebeurtenissen, moet inkomend verkeer zijn ingeschakeld( openbaar of binnen de interne omgeving van Container Apps).
- Verplicht opslagaccount: elke Functions-app die is geïmplementeerd in Container Apps, moet worden gekoppeld aan een opslagaccount. Dit is vereist voor het beheren van triggers, logboeken en status. Bekijk de richtlijnen voor het opslagaccount voor aanbevolen procedures.
- Opslag met meerdere revisies: wanneer u implementeert met meerdere actieve revisies, wijst u een toegewezen opslagaccount toe aan elke revisie. Het gebruik van een toegewezen opslagaccount helpt conflicten te voorkomen en zorgt voor een juiste isolatie. Als u geen gelijktijdige revisies nodig hebt, kunt u ook de standaardmodus voor één revisie gebruiken voor vereenvoudigd beheer.
- Triggers voor meerdere revisies: als u de modus voor meerdere revisies gebruikt met een pull-trigger, gebruikt u een andere gebeurtenisbron voor elke revisie om conflicten met betrekking tot concurrerende consumenten te voorkomen. Functies die gebruikmaken van Azure Queue Storage, Azure Event Hubs, Azure Service Bus of Durable Functions triggers zijn voorbeelden van pull-triggers.
- Cold start latentie: Wanneer uw container-app tijdens inactieve perioden opschaalt naar nul, ervaart de eerste aanvraag na inactiviteit een cold start. Meer informatie over het verminderen van koude begintijden.
- Integratie van Application Insights: Voor robuuste bewaking en diagnose koppelt u uw Functions-app aan Application Insights. Zie App Insights-integratie met Functions voor meer informatie.
- Functions-proxies: niet ondersteund. Voor API-gatewayscenario's integreert u in plaats daarvan met Azure API Management.
- Implementatiesites: staging- en productiesites zijn niet beschikbaar. Gebruik blauwgroene implementatiestrategieën voor releases zonder downtime.
- Toegangssleutels voor Functies: het gebruik van de portal voor het genereren van Functions-toegangssleutels wordt niet ondersteund. Overweeg om Azure Key Vault te gebruiken om sleutels op te slaan. U kunt ook de volgende opties gebruiken om HTTP-eindpunten in productie te beveiligen:
- Quotum- en resourcelimieten: Container Apps-omgevingen hebben standaardlimieten voor geheugen, CPU en exemplaren per regio. Zie de omgevingslimieten en standaardquota voor meer informatie. Als voor uw workload meer resources nodig zijn, kunt u een quotumverhoging aanvragen.
- Manual scale rule configuration: De knop 'Schaalregels toevoegen' in de Azure-portal is uitgeschakeld voor Azure Functions gehost op Container Apps, omdat schaalregels automatisch worden geconfigureerd op basis van de gebeurtenisbron. Handmatige KEDA-regeldefinities zijn niet vereist in deze installatie.
Feedback verzenden
Dien een probleem of een functieaanvraag in bij de Azure Container Apps GitHub opslagplaats.
Volgende stappen / Verdere hulpmiddelen
Als u wilt blijven leren en bouwen met Azure Functions in Container Apps, bekijkt u de volgende resources:
- Getting started: Stapsgewijze handleiding voor het implementeren en configureren van Azure Functions in Azure Container Apps.
- Azure Container Apps documentatie: volledige naslaginformatie voor Container Apps-functies, waaronder schalen, netwerken, Dapr en workloadprofielen.
- Azure Container Apps prijzen: details over kosten voor facturering op basis van verbruik en toegewezen abonnementen.
- Azure Functions hostingopties: Vergelijking van hostingabonnementen, waaronder Container Apps, Flex Consumption, Premium en Dedicated.
- Azure Functions ontwikkelaarshandleiding: uitgebreide informatie over triggers, bindingen, runtimegedrag en configuratie.