Správa Windows Azure pomocí PowerShell CmdLetů
Jeden ze způsobů jak spravovat Windows Azure a také tuto správu automatizovat, je pomocí Windows Azure PowerShell CmdLetů. Jejich knihovna je volně ke stažení z MSDN Code Gallery. Prakticky lze pomocí skriptů provádět následující typy operací:
- Správa aplikací
- Práce s certifikáty
- Operace nad Azure Storage
- Diagnostika
- Správa afinit
- Status operací
Ještě před tím, než začneme CmdLety používat, musíme si opsat několik podstatných informací z provisioning portálu (windows.azure.com). Konkrétně jde o číslo předplatného a Thumbprint API certifikátu. Číslo předplatného naleznete v záložce Account dole:
Thumbprint API certifikátu pak klikem na stejné stránce na odkaz „Manage My API Certificates“. Ten slouží pro ověření volající aplikace pro přístup k management API.
Pokud ještě certifikát nemáte, zde je postup ke jeho vygenerování a použití. Musí jít o platný X509 certifikát s minimální délkou 2048 bitů. Nejjednodušeji jej lze vygenerovat takto:
makecert -r -pe -a sha1 -n "CN=Windows Azure Authentication Certificate" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 testcert.cer
Celý postup, krok za krokem, je např. popsán zde.
Praktické příklady použití
Ukažme si tři základní operace, které budete na počátku pravděpodobně provádět – vypsání všech registrovaných služeb, nasazení nové aplikace a zastavení a smazání běžící aplikace.
1, Vypsání všech registrovaných služeb
$cert = Get-Item cert:\CurrentUser\My\ <váš Certificate Thumbprint>
$sub = " <číslo vašeho předplatného> "
# zavede Azure management snapinif ((Get-PSSnapin | ?{$_.Name -eq "AzureManagementToolsSnapIn"}) -eq $null)
{
Add-PSSnapin AzureManagementToolsSnapIn
}# Seznam bezicich sluzeb v dane predplatnem
Get-HostedServices -subscriptionId $sub -certificate $Cert
2, Nasazení nove aplikace
$cert = Get-Item cert:\CurrentUser\My\ <váš Certificate Thumbprint>
$sub = " <číslo vašeho předplatného> "
$servicename = ' <jméno vaší služby v cloudu> '
$storagename =' <jméno vaší storage služby v cloudu> '
$package = " <plná cesta k souboru balíku nasazené *.cspkg> "
$config = " <plná cesta k souboru balíku nasazené *.cscfg> "# zavede Azure management snapin
if ((Get-PSSnapin | ?{$_.Name -eq "AzureManagementToolsSnapIn"}) -eq $null)
{
Add-PSSnapin AzureManagementToolsSnapIn
}# Nasadi novou verzi aplikace, aplikace zustane ve stavu suspended
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |
New-Deployment Production $package $config -Label 'v.Next' -StorageServiceName $storagename |
Get-OperationStatus -WaitToComplete
3, Zastavení a odstranění aplikace (uvádím kód již bez definice proměnných, které jsou identické jako v předchozím příkladu a stejně tak zavedení knihovny)
# smaze nasazenou aplikaci v produkcnim slotu
$hostedService = Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub | Get-Deployment -Slot Productionif ($hostedService.Status -ne $null)
{
$hostedService |
Set-DeploymentStatus 'Suspended' |
Get-OperationStatus –WaitToComplete
$hostedService |
Remove-Deployment |
Get-OperationStatus –WaitToComplete
}