API di microservizi basate su Dapr
App contenitore di Azure offre API basate su Dapr (Distributed Application Runtime) che consentono di scrivere e implementare microservizi semplici, portabili, resilienti e protetti. Dapr interagisce con App contenitore di Azure come livello di astrazione per offrire una piattaforma scalabile e a manutenzione ridotta. App contenitore di Azure offre una selezione di API Dapr, componenti e funzionalità completamente gestite, in particolare per scenari di microservizi. È sufficiente abilitare e configurare Dapr come di consueto nell'ambiente dell'app contenitore.
Funzionamento delle API di microservizi con l'app contenitore
Configurare le API dei microservizi per l'ambiente delle app contenitore con un'app contenitore abilitata per Dapr, un componente Dapr configurato per la soluzione e un sidecar Dapr che richiama la comunicazione tra di essi. Il diagramma seguente illustra questi concetti di base, usando l'API pub/sub come esempio.
Etichetta | Impostazioni Distributed Apps Runtime | Descrizione |
---|---|---|
1 | App contenitore con Distributed Apps Runtime abilitato | Distributed Apps Runtime è abilitato a livello di app contenitore configurando un set di argomenti Distributed Apps Runtime. Questi valori si applicano a tutte le revisioni di una determinata app contenitore durante l'esecuzione in modalità più revisioni. |
2 | Dapr | Le API Distributed Apps Runtime completamente gestite vengono esposte a ogni app contenitore tramite un sidecar Distributed Apps Runtime. Le API Distributed Apps Runtime possono essere richiamate dall'app contenitore tramite HTTP o gRPC. Il sidecar Distributed Apps Runtime viene eseguito sulla porta HTTP 3500 e gRPC 50001. |
3 | Configurazione del componente Distributed Apps Runtime | Distributed Apps Runtime usa una progettazione modulare in cui la funzionalità viene distribuita come componente. I componenti Distributed Apps Runtime possono essere condivisi tra più app contenitore. Gli identificatori dell'app Distributed Apps Runtime forniti nella matrice di ambiti determinano quali app contenitore abilitate per Distributed Apps Runtime caricano un determinato componente in fase di esecuzione. |
API, componenti e strumenti Dapr supportati
API gestite
App contenitore di Azure offre API Dapr gestite disponibili a livello generale (blocchi predefiniti). Queste API sono completamente gestite e supportate per l'uso in ambienti di produzione.
Per altre informazioni sull'uso di API e funzionalità Dapr alfa, vedere le domande frequenti su Dapr.
API | Stato | Descrizione |
---|---|---|
Chiamata da servizio a servizio | Disponibilità generale | Individuare i servizi ed eseguire chiamate affidabili e dirette da servizio a servizio con autenticazione e crittografia mTLS automatica. Vedere limitazioni note per la chiamata al servizio Dapr in App contenitore di Azure. |
Gestione dello stato | Disponibilità generale | Fornisce funzionalità di gestione dello stato per le transazioni e le operazioni CRUD. |
Pubblicazione-sottoscrizione | Disponibilità generale | Consente alle app contenitore del server di pubblicazione e sottoscrittore di intercommunicare tramite un broker di messaggi intermedi. È anche possibile creare sottoscrizioni dichiarative a un argomento usando un file JSON del componente esterno. Altre informazioni sull'API pub/sub dichiarativa. |
Bindings | Disponibilità generale | Attivare le applicazioni in base a eventi |
Attori | Disponibilità generale | Gli attori Distributed Apps Runtime sono unità di lavoro basate su messaggi, a thread singolo progettate per ridimensionare rapidamente. Ad esempio, in situazioni di carico di lavoro con picchi elevati. |
Osservabilità | Disponibilità generale | Inviare informazioni di traccia a un back-end di Application Insights. |
Segreti | Disponibilità generale | Accedere ai segreti dal codice dell'applicazione o fare riferimento a valori sicuri nei componenti Distributed Apps Runtime. |
Configurazione | Disponibilità generale | Recuperare e sottoscrivere gli elementi di configurazione dell'applicazione per gli archivi di configurazione supportati. |
SDK compatibili
I pacchetti SDK client più recenti di Dapr sono compatibili con App Azure Container. È possibile usare una delle API Dapr supportate con le seguenti versioni di Dapr client SDK:
Lingua | Versione dell'SDK |
---|---|
Java | 1.12.0 |
Go | 1.11.0 |
Python | 1.14.0 |
.NET | 1.14.0 |
JavaScript | 3.3.1 |
Rust | 0.15.1 |
Nota
Attualmente, le estensioni del server Dapr, l'attore e i pacchetti SDK del flusso di lavoro non sono compatibili con le app contenitore di Azure. Altre informazioni su tutti i pacchetti dapr SDK.
Componenti di livello 1 e di livello 2
È supportato un sottoinsieme di componenti Dapr. All'interno di tale sottoinsieme, i componenti Dapr sono suddivisi in due categorie di supporto: il livello 1 o il livello 2.
- Componenti di livello 1: componenti stabili che ricevono un'analisi immediata in scenari critici (di sicurezza o regressione grave). In caso contrario, Microsoft collabora con open source per risolvere un hotfix o la versione regolare successiva.
- Componenti di livello 2: componenti a cui viene esaminata una priorità minore, perché non sono in uno stato stabile o si trovano con un provider di terze parti.
Componenti di livello 1
API | Componente | Type |
---|---|---|
Gestione dello stato | Azure Cosmos DB Archiviazione BLOB di Azure v1 Archiviazione tabelle di Azure Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Pubblicazione e sottoscrizione | Code del bus di servizio di Azure Argomenti del bus di servizio di Azure Hub eventi di Azure |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Binding | Code di Archiviazione di Azure Code del bus di servizio di Azure Archiviazione BLOB di Azure Hub eventi di Azure |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Gestione dei segreti | Azure Key Vault | secretstores.azure.keyvault |
Componenti di livello 2
API | Componente | Type |
---|---|---|
Gestione dello stato | PostgreSQL MySQL & MariaDB Redis |
state.postgresql state.mysql state.redis |
Pubblicazione e sottoscrizione | Apache Kafka Flussi Redis |
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 |
Impostazione | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Strumenti
App contenitore di Azure garantisce la compatibilità con gli strumenti open source Dapr, ad esempio SDK e l'interfaccia della riga di comando.
Limiti
- Specifica di configurazione Dapr: tutte le funzionalità che richiedono l'uso della specifica di configurazione Dapr.
- Eventuali annotazioni sidecar Dapr non elencate nella guida all'abilitazione Dapr
- Supporto di API e componenti: solo le API e i componenti Dapr elencati come GA, livello 1 o livello 2 in questo articolo sono supportati in App contenitore di Azure.
- Promemoria dell'attore: richiedere un valore minReplicas pari a 1+ per garantire che i promemoria siano sempre attivi e vengano attivati correttamente.
- Processi: Dapr non è supportato per i processi.