Azure Resource Manager (ARM) è il sistema che sta alla base dell'intera infrastruttura di Microsoft Azure e consente la creazione e la configurazione di qualsiasi risorsa. Un template ARM è rappresentato nel formato JSON e permette di essere inoltrato all'infrastruttura tramite script PowerShell o da DevOps per automatizzare i processi di deployment, senza intervenire manualmente.
Tra i task che più frequentemente dobbiamo effettuare c'è sicuramente quello della creazione di un web site. In questo script si vuole proporre un template ARM contenente le configurazioni minime più frequenti, fermo restando che la documentazione ufficiale fornisce maggiori dettagli. Nello specifico dobbiamo utilizzare il tipo Microsoft.Web/serverfarms per la creazione di un server plan, dettagli disponibili a questo indirizzo https://docs.microsoft.com/en-us/azure/templates/microsoft.web/serverfarms Successivamente dobbiamo creare il sito tramite Microsoft.Web/sites con questa documentazione https://docs.microsoft.com/en-us/azure/templates/microsoft.web/sites. Solitamente impostiamo lo stack da usare e alcune impostazioni per alzare il livello di sicurezza e di prestazioni.
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "name": { "type": "string" } }, "variables": { "siteName": "[parameters('name')]", "location": "[resourceGroup().location]", "servicePlanId": "[resourceId('Microsoft.Web/serverFarms', variables('siteName'))]" }, "resources": [ { "type": "Microsoft.Web/serverfarms", "apiVersion": "2018-02-01", "name": "[variables('siteName')]", "location": "[variables('location')]", "sku": { "name": "S1" }, "kind": "app", "properties": {} }, { "type": "Microsoft.Web/sites", "apiVersion": "2018-11-01", "name": "[variables('siteName')]", "location": "[variables('location')]", "kind": "app", "dependsOn": [ "[variables('servicePlanId')]" ], "properties": { "serverFarmId": "[variables('servicePlanId')]", "clientAffinityEnabled": false, "httpsOnly": true, "siteConfig": { "webSocketsEnabled": true, "alwaysOn": true, "http20Enabled": true, "minTlsVersion": "1.2", "ftpsState": "Disabled", "appSettings": [ { "name": "Key1", "value": "value" } ], "metadata": [ { "name": "CURRENT_STACK", "value": "dotnetcore" } ] } } } ] }
Nello script usiamo un parametro di ingresso per indicare il nome, mentre il resto viene automaticamente calcolato. Sul site indichiamo di usare .NET Core, disattiviamo l'accesso FTP, abilitiamo HTTP2 e forziamo il livello di HTTPS.
Questo è solamente un punto di partenza ma è già sufficiente per il deployment di un applicativo web.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Nav menu
Anonimizzare i dati sensibili nei log di Azure Front Door
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Gestire gli accessi con Token su Azure Container Registry
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Implementare il throttle in JavaScript
Integrare un servizio esterno con .NET Aspire
Proteggere le risorse Azure con private link e private endpoints
Generare una User Delegation SAS in .NET per Azure Blob Storage
Configurare lo startup di applicazioni server e client con .NET Aspire
I più letti di oggi
- Eseguire query con LINQ to SQL
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Gestione file Javascript in Blazor con .NET 9
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- #VS2017 Community è già disponibile al download da questa pagina https://aspit.co/bgb
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!