PR

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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