Dapr-integratie met Azure Container Apps
Distributed Application Runtime (Dapr) biedt API's die worden uitgevoerd als sidecar-proces waarmee u eenvoudige, draagbare, flexibele en beveiligde microservices kunt schrijven en implementeren. Dapr werkt samen met Azure Container Apps als een abstractielaag om een laag laag onderhoud, serverloos en schaalbaar platform te bieden. Als u Dapr inschakelt in uw container-app , wordt naast uw toepassingscode een secundair proces gemaakt dat de intercommunicatie van toepassingen met Dapr vereenvoudigt via HTTP of gRPC.
Dapr in Azure Container Apps
Configureer Dapr voor uw container-apps-omgeving met een container-app met Dapr-functionaliteit, een Dapr-onderdeel dat is geconfigureerd voor uw oplossing en een Dapr-sidecar die ertussen communicatie aanroept. In het volgende diagram ziet u deze kernconcepten met betrekking tot Dapr in Azure Container Apps.
Label | Dapr-instellingen | Beschrijving |
---|---|---|
1 | Container Apps waarvoor Dapr is ingeschakeld | Dapr is ingeschakeld op het niveau van de container-app door een set Dapr-argumenten te configureren. Deze waarden zijn van toepassing op alle revisies van een bepaalde container-app wanneer deze worden uitgevoerd in de modus voor meerdere revisies. |
2 | Dapr | De volledig beheerde Dapr-API's worden beschikbaar gesteld voor elke container-app via een Dapr-sidecar. De Dapr-API's kunnen worden aangeroepen vanuit uw container-app via HTTP of gRPC. De Dapr-sidecar wordt uitgevoerd op HTTP-poort 3500 en gRPC-poort 50001. |
3 | Configuratie van dapr-onderdelen | Dapr maakt gebruik van een modulair ontwerp waarbij functionaliteit wordt geleverd als onderdeel. Dapr-onderdelen kunnen worden gedeeld in meerdere container-apps. De Dapr-app-id's die zijn opgegeven in de scopesmatrix bepalen welke container-apps met dapr-functionaliteit een bepaald onderdeel tijdens runtime laden. |
Ondersteunde Dapr-API's, onderdelen en hulpprogramma's
Beheerde API's
Azure Container Apps biedt beheerde algemeen beschikbare Dapr-API's (bouwstenen). Deze API's worden volledig beheerd en ondersteund voor gebruik in productieomgevingen.
Zie de Veelgestelde vragen over Dapr voor meer informatie over het gebruik van alfa Dapr-API's en -functies.
API | -Status | Beschrijving |
---|---|---|
Aanroep van service-naar-service | GA | Ontdek services en voer betrouwbare, directe service-naar-service-aanroepen uit met automatische mTLS-verificatie en -versleuteling. Bekijk bekende beperkingen voor aanroepen van dapr-services in Azure Container Apps. |
Statusbeheer | GA | Biedt mogelijkheden voor statusbeheer voor transacties en CRUD-bewerkingen. |
Pub/sub | GA | Hiermee kunnen uitgevers- en abonneecontainer-apps communiceren via een tussenliggende berichtenbroker. U kunt ook declaratieve abonnementen voor een onderwerp maken met behulp van een JSON-bestand met een extern onderdeel. Meer informatie over de declaratieve pub/sub-API. |
Bindings | GA | Uw toepassingen activeren op basis van gebeurtenissen |
Acteurs | GA | Dapr-actoren zijn berichtengestuurde, één threaded, werkeenheden die zijn ontworpen om snel te schalen. Bijvoorbeeld in burst-zware workloadsituaties. |
Observability | GA | Traceringsgegevens verzenden naar een Application Insights-back-end. |
Geheimen | GA | Krijg toegang tot geheimen vanuit uw toepassingscode of verwijs naar beveiligde waarden in uw Dapr-onderdelen. |
Configuratie | GA | Haal toepassingsconfiguratie-items op en abonneer erop voor ondersteunde configuratiearchieven. |
Laag 1 versus laag 2-onderdelen
Een subset van Dapr-onderdelen wordt ondersteund. Binnen die subset worden Dapr-onderdelen onderverdeeld in twee ondersteuningscategorieën: Laag 1 of Laag 2.
- Laag 1-onderdelen: stabiele onderdelen die onmiddellijk onderzoek ontvangen in kritieke (beveiligings- of ernstige regressie)-scenario's. Anders werkt Microsoft samen met open source om te reageren in een hotfix of de volgende reguliere release.
- Laag 2-onderdelen: Onderdelen die worden onderzocht op een lagere prioriteit, omdat ze niet in een stabiele staat of bij een externe provider zijn.
Onderdelen van laag 1
API | Onderdeel | Type |
---|---|---|
Statusbeheer | Azure Blob Storage v1 Azure-tabelopslag Microsoft SQL Server |
state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Publiceren en abonneren | Azure Service Bus-wachtrijen Azure Service Bus-onderwerpen Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Binding | Azure Storage-wachtrijen Azure Service Bus-wachtrijen Azure Blob-opslag Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Geheimenbeheer | Azure Key Vault | secrets.azure.keyvault |
Laag 2-onderdelen
API | Onderdeel | Type |
---|---|---|
Statusbeheer | Azure Cosmos DB PostgreSQL MySQL & MariaDB Redis |
state.azure.cosmosdb state.postgresql state.mysql state.redis |
Publiceren en abonneren | Apache Kafka Redis Streams |
pubsub.kafka pubsub.redis |
Binding | Azure Event Grid Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Configuratie | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Hulpprogramma's
Azure Container Apps zorgt voor compatibiliteit met opensource-hulpprogramma's voor Dapr, zoals SDK's en de CLI.
Beperkingen
- Dapr-configuratiespecificatie: alle mogelijkheden waarvoor het gebruik van de Dapr-configuratiespecificatie is vereist.
- Dapr-sidecaraantekeningen die niet worden vermeld in de dapr-activeringshandleiding
- API's en onderdelen ondersteunen: alleen de Dapr-API's en onderdelen die worden vermeld als GA, Laag 1 of Laag 2 in dit artikel , worden ondersteund in Azure Container Apps.
- Actorherinneringen: Vereist een minReplicas van 1+ om ervoor te zorgen dat herinneringen altijd actief zijn en correct worden geactiveerd.
- Taken: Dapr wordt niet ondersteund voor taken.
Volgende stappen
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor