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.

Diagramma che illustra Dapr pub/sub e come funziona in App contenitore.

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.

Diagramma che mostra le API 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.

Passaggi successivi