Microservice-API's mogelijk gemaakt door Dapr
Azure Container Apps biedt API's die worden aangedreven door Distributed Application Runtime (Dapr) 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 onderhoud en een schaalbaar platform te bieden. Azure Container Apps biedt een selectie van volledig beheerde Dapr-API's, onderdelen en functies, die specifiek geschikt zijn voor microservicescenario's. Schakel Dapr gewoon in en configureer deze zoals gebruikelijk in uw container-app-omgeving.
Hoe de microservices-API's werken met uw container-app
Configureer microservices-API's 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 behulp van de pub/sub-API als voorbeeld.
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. |
Compatibele SDK's
De nieuwste client-SDK-pakketten van Dapr zijn compatibel met Azure Container Apps. U kunt een van de ondersteunde DAPR-API's van GA gebruiken met de volgende Dapr-client-SDK-versies:
Taal | SDK-versie |
---|---|
Java | 1.12.0 |
Go | 1.11.0 |
Python | 1.14.0 |
.NET | 1.14.0 |
JavaScript | 3.3.1 |
Rust | 0.15.1 |
Notitie
Momenteel zijn de Dapr-serverextensies, actor- en werkstroom-SDK-pakketten niet compatibel met Azure Container Apps. Meer informatie over alle Dapr SDK-pakketten.
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 Cosmos DB Azure Blob Storage v1 Azure-tabelopslag Microsoft SQL Server |
state.azure.cosmosdb 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 | secretstores.azure.keyvault |
Laag 2-onderdelen
API | Onderdeel | Type |
---|---|---|
Statusbeheer | PostgreSQL MySQL & MariaDB Redis |
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.