Lo sviluppo per Windows Azure è possibile grazie al SDK che oltre a rendere disponibile alcuni template, si integra in Visual Studio 2010 per fornire funzionalità aggiuntive specifiche. Tra queste è presente anche la funzione di deployment e altre attività inerenti al debugging, mentre tutti gli altri aspetti si possono gestire attraverso il portale Windows Azure.
Spesso si ha la necessità di compiere operazioni ripetitive oppure di programmarle ad una determinata ora, ma poiché la gestione delle macchine virtuali è tutt'altro che rapida, queste operazioni possono risultare scomode e dispendiose. A questo scopo vengono in aiuto le estensioni di Windows Azure per Windows PowerShell disponibili all'indirizzo
http://code.msdn.microsoft.com/azurecmdlets
Grazie alle capacità di PowerShell, nato appositamente per eseguire script in sostituzione dei vecchi batch, è possibile controllare i servizi, attivare o spegnere ruoli o deployare nuovi pacchetti. Per quest'ultimo i comandi che si possono usare sono:
- Get-HostedService: ottiene il riferimento al servizio in base al certificato e all'ID di sottoscrizione;
- Get-Deployment: restituisce il deployment di produzione o di staging di un servizio;
- Remove-Deployment: rimuove il deployment di riferimento;
- Set-DeploymentStatus: cambia lo stato del deployment in sospeso o avviato;
- Get-OperationStatus: restituisce lo stato dell'operazione in corso.
Ipotizzando di usare Windows PowerShell ISE (l'editor specifico), è possibile sfruttare questi comandi per sostituire un deployment e poi avviarlo. Per farlo occorre prima caricare lo snapin ed è inoltre comodo partire definendo alcune variabili utili allo scripting, tra cui il certificato (installato sul portale) per la comunicazione, l'ID, il nome del servizio, i percorsi al pacchetto e alla configurazione:
Add-PSSnapin AzureManagementToolsSnapIn $cert = get-item cert:\CurrentUser\MY\[thumbPrint] $sub = "guid sottoscrizione" $servicename = 'nome servizio' $package = "myapp.cspkg" $config = "myapp.cscfg"
I passaggi da eseguire sono sostanzialmente tre e per priam cosa occorre sospendere il servizio attualmente attivo. Con la concatenazione dei comandi, possibile tramite la pipe, si ottiene il servizio, poi il deployment e lo si sospende:
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub | Get-Deployment -Slot Production | Set-DeploymentStatus 'Suspended' | Get-OperationStatus -WaitToComplete
Con l'opzione -WaitToComplete si attende la fine dell'operazione, la quale può impiegare anche qualche minuto. Successivamente con la stessa tecnica si rimuove il deployment:
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub | Get-Deployment -Slot Production | Remove-Deployment | Get-OperationStatus -WaitToComplete
Si procede poi con il caricamento del pacchetto e la relativa configurazione:
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |
New-Deployment Production $package $config -Label 'nuova installazione' |
Get-OperationStatus -WaitToCompleteUna volta caricato è possibile procedere all'avviamento del servizio:
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |
Get-Deployment -Slot Production |
Set-DeploymentStatus 'Running' |
Get-OperationStatus -WaitToCompleteE' possibile salvare lo script in file ps1 così da poterlo utilizzare più volte. Infine, essendo molteplici i comandi, si invita a visionare la lista sul sito apposito, indicato in precedenza.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Semplificare i deployment con le label in Azure Container App
Integrare OpenAI tramite Aspire
Recuperare le subissue e il loro stato di completamento in GitHub
Integrazione di Copilot in .NET Aspire
Impostare automaticamente l'altezza del font tramite CSS
Gestire codice JavaScript con code splitting e lazy loading
Gestire il routing HTTP in Azure Container App
Raggruppare risorse in .NET Aspire
Abilitare il rolling update su Azure Functions flex consumption
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Centralizzare gli endpoint AI Foundry con Azure API Management
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Inserire le news di Punto Informatico nel proprio sito


