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:

clip_image002

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.

clip_image004

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 snapin

if ((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 Production

if ($hostedService.Status -ne $null)
{
    $hostedService |
    Set-DeploymentStatus 'Suspended' |
    Get-OperationStatus –WaitToComplete
    $hostedService |
    Remove-Deployment |
    Get-OperationStatus –WaitToComplete
}