PowerShellを使用したAzureの管理(2)

2011年8月30日(火)
bird982000(監修:山田祥寛)

ホステッドサービスのアップロード

では実際にホステッドサービスをアップロードしてみます。アップロードには「New-Deployment」コマンドを使用します。以下のように使用します。

  PS C:\> Add-PSSnapin AzureManagementToolsSnapIn
  PS C:\> $SubscriptionId=<サブスクリプションID>
  PS C:\> $thumbprintInUpperCase=<管理証明書のThumprint>"
  PS C:\> $serviceName=<ストレージサービスURLのプレフィックス>
  PS C:\> New-Deployment -subscriptionId $SubscriptionId -certificate (get-item cert:\CurrentUser\MY\$thumbprintInUpperCase) -serviceName $serviceName -slot Staging "C:\upload\WindowsAzureProject2.cspkg" -configuration "C:\upload\ServiceConfiguration.cscfg" -name TestDeploy -label TestLabelStaging

  SubscriptionId                Certificate                   ServiceName                   OperationId
  --------------                -----------                   -----------                   -----------
  1234e596-c473-4998-ab21-1a... [Subject]...                  bird982000                    b2811ad8a9b7456980a79b6b7d...

細かい構文はPowerShellのGet-Helpコマンドを参照してください。今回は-slot引数でステージング環境を指定した上で、C:\uploadフォルダ以下に配置してあるローカルのパッケージファイルと構成ファイルを指定してアップロードしました。この際にホステッドサービスの名称とラベル名称を-name と-label引数で指定しています。なお、パッケージファイルと構成ファイルはブロブストレージに配置してあるものも指定でき、デプロイのスピードはブロブストレージに配置してあるファイルの方が早くなります。

アップロードしただけですので、Set-DeploymentStatusコマンドを使用してサービスを起動します。-Status引数で起動状態に変更しています。

  PS C:\> Set-DeploymentStatus -Status Running -Slot Staging -ServiceName bird982000 -subscriptionId $SubscriptionId -certificate (get-item cert:\CurrentUser\MY\$thumbprintInUpperCase)
  
  SubscriptionId                Certificate                   ServiceName                   OperationId
  --------------                -----------                   -----------                   -----------
  1234e596-c473-4998-ab21-1a... [Subject]...                  bird982000                    45b8344ed4ca4a45a2d19567a9...

これでサービスの起動が完了です。以下のようにAzureポータルでもサービスが起動しつつあることが確認できます。

図3:ホステッドサービスの起動画面

実際のログ出力

それでは、実際にホステッドサービスのインスタンスが出力する、Windowsのイベントログの設定を変更してみます。今回はこのログをinformationレベルまでストレージに転送するようにします。

まず、設定を確認してみます。

  PS C:\>$Deployid=<DeploymentId>
  PS C:\>$storage=<ストレージアカウント名>
  PS C:\>$key=<ストレージのアクセスキー>
  
  PS C:\>Get-DiagnosticAwareRoles -DeploymentId $Deployid -StorageAccountName $storage -StorageAccountKey $key
  WebRole1
  PS C:\>$Role=WebRole1

デプロイは複数のロールをまとめてデプロイする可能性があるので、Get-DiagnosticAwareRolesコマンドで診断モニターが有効なロールを表示します。デプロイ単位で確認できるようになっているので-DeploymentIdでデプロイIDを表示して、ストレージの設定を-StorageAccountName、-StorageAccountKeyで設定します。

  Set-WindowsEventLog -EventLogs "Application!*" -Rolename $Role -TransferPeriod 1 -StorageAccountName $storage -StorageAccountKey $key -DeploymentId $DeployID -BufferQuotaInMB 1024 -LogLevelFilter Information

Set-WindowsEventLogでインスタンスの設定を変更します。上記ではログレベルInformationを1分ごとに出力するように設定しています。

これで変更は完了です。Get-DiagnosticConfigurationコマンドで設定が確認できますので、変更されていることを確認してください

  PS C:\> Get-DiagnosticConfiguration -BufferName WindowsEventLogs -RoleName $Role -InstanceId $InstanceID -StorageAccountName $storage -StorageAccountKey $key -DeploymentId $DeployID
  
  DataSources                   ScheduledTransferLogLevelFilter ScheduledTransferPeriod                     BufferQuotaInMB
  -----------                   ----------------------------- -----------------------                     ---------------
  {Application!*}                                 Information 00:01:00                                               1024

-BufferName引数でイベントログを指定しています。これ以外にパフォーマンスログなども指定できます。

著者
bird982000(監修:山田祥寛)
WINGSプロジェクト

有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表:山田祥寛)。おもな活動は、Web開発分野の書籍/雑誌/Web記事の執筆。ほかに海外記事の翻訳、講演なども幅広く手がける。2011年3月時点での登録メンバは36名で、現在もプロジェクトメンバーを募集中。執筆に興味のある方は、どしどしご応募頂きたい。著書多数。
http://www.wings.msn.to/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています