Nei precedenti script abbiamo visto come creare una serie di servizi della piattaforma Azure che ruotano intorno ai nostri applicativi. In questo script vogliamo procedere con la creazione di un namespace di Service Bus, utile per usufruire di code per comunicazioni asincrone.
Il primo snippet da utilizzare è quello relativo alla creazione del namespace.
{ "type": "Microsoft.ServiceBus/namespaces", "apiVersion": "2018-01-01-preview", "name": "[variables('name')]", "location": "[variables('location')]", "sku": { "name": "Basic", "tier": "Basic" } }
Partiamo come sempre dal presupposto di avere due variabili per indicare il nome e la location della risorsa. La proprietà più rilevante è caratterizzata dallo sku, che indica il tier del namespace.
Sebbene possiamo crearle da codice o da script, è utile anche predisporre la creazione di code necessarie ai nostri applicativi. Sfruttando sempre le variabili possiamo fare riferimento al namespace e associare una o più code indicandone le caratteristiche.
{ "type": "Microsoft.ServiceBus/namespaces/queues", "apiVersion": "2018-01-01-preview", "name": "[concat(variables('name'), '/myQueue')]", "location": "[variables('location')]", "dependsOn": [ "[resourceId('Microsoft.ServiceBus/namespaces', variables('name'))]" ], "properties": { "lockDuration": "PT1M", "maxSizeInMegabytes": 1024, "requiresDuplicateDetection": false, "requiresSession": false, "defaultMessageTimeToLive": "P7D", "deadLetteringOnMessageExpiration": true, "duplicateDetectionHistoryTimeWindow": "PT10M", "maxDeliveryCount": 1, "enablePartitioning": false } }
Possiamo notare la possibilità di indicare tutte le caratteristiche visibili anche dal portale, come la dimensione, il partizionamento, il TTL, la presenza della dead letter e il numero massimo di consegne dei messaggi.
Possiamo fare ancora di più e procedere anche alla creazione delle rule aventi diritto di lettura e/o scrittura sulle code, come mostrato nell'esempio seguente.
{ "type": "Microsoft.ServiceBus/namespaces/AuthorizationRules", "apiVersion": "2017-04-01", "name": "[concat(variables('name'), '/SendListen')]", "location": "[variables('location')]", "dependsOn": [ "[resourceId('Microsoft.ServiceBus/namespaces', variables('name'))]" ], "properties": { "rights": [ "Listen", "Send" ] } }
Possiamo in alternativa associare le rule ad una specifica coda. Nell'esempio precedente creiamo una chiave di nome SendListen, avente il permesso di invio e ricezione dei messaggi.
Poiché la rule appena creata dovrà essere poi utilizzata, possiamo usare la funzione listKeys per ottenere la stringa di connessione e associarla direttamente ad un appSettings di una WebApp o all'output del template come mostrato:
"outputs": { "connectionString": { "type": "string", "value": "[listkeys([resourceId('Microsoft.ServiceBus/namespaces/authorizationRules', variables('name'), 'SendListen')], '2017-04-01').primaryConnectionString]" } }
Per maggiori informazioni rimandiamo alla documentazione ufficiale https://docs.microsoft.com/en-us/azure/templates/microsoft.servicebus/namespaces
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esecuzione a matrici nei workflow di GitHub Action
@amelchiori tra poco su azure functions on kubernetes with keda: https://aspit.co/ServerlessDay #aspilive #serverless #azure #kubernets #aks
Leggere il valore di un header della richiesta in ASP.NET Core 6
Versionare automaticamente un file di progetto .NET Core con una pipeline YAML di Azure DevOps
Calcolare automaticamente un numero di versione di un repository in una pipeline di Azure DevOps
Introduzione al nuovo tipo TimeOnly di .NET
Controllare lo stato di un servizio gRPC in ASP.NET Core tramite Health Check
Associare Application Insights ad una Web App tramite Azure ARM
Compilare un'applicazione .NET Core con una GitHub Action
Creare Higher-Order functions in JavaScript
Integrare e trasformare dati con Azure Data Factory
Integrare dive nelle pipeline di Azure DevOps e GitHub
I più letti di oggi
- Tracciare gli eventi tramite i DevTools di Chrome
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Accedere alla console di una Azure Container App
- devConf 2022 - Online
- Utilizzare i metodi Linq MinBy e MaxBy per semplificare le ricerche degli elementi minimi e massimi in liste di oggetti complessi con LINQ
- Track 1: @marcominerva ci parla di DateOnly e TimeOnly in #dotnetTrack 2: @raffaeler su come monitorare e prevenire problemi in produzione (parte 2)Track 3: live show (ultimo segmento live della giornata) Seguici live su #aspilive: https://aspit.co/devconf-22
- Track 1: @sm15455 con le novità di #angular 14Track 2: @CristianCivera su come sviluppare applicazioni #serverless con #azure #containerappsTrack 3: live show Seguici su #aspilive: https://aspit.co/devconf-22