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
Path addizionali per gli asset in ASP.NET Core MVC
Recuperare l'ultima versione di una release di GitHub
Creare una libreria CSS universale - Rotazione degli elementi
Cancellare una run di un workflow di GitHub
Configurare e gestire sidecar container in Azure App Service
Gestione dell'annidamento delle regole dei layer in CSS
Recuperare App Service cancellati su Azure
Gestire gli accessi con Token su Azure Container Registry
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
I più letti di oggi
- Beta 1 di VS 2005 Enterprise Architect
- Point-in-time restore con gli Azure Storage Blob
- Focus dei tag input con HTML5
- Il nuovo tag nav in HTML5
- Evitare la modalità di risparmio energetico in una Windows Store app
- Real Code Day 4.0: costruire applicazioni reali - Firenze
- AI&ML Conference 2019 - Milano
- Mono 0.12: verso una nuova implementazione di ASP.NET