はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

Azure PowerShellの具体例(例2:接続先サブスクリプションの変更)

前準備

http://hatsune.hatenablog.jp/entry/2018/04/11/010156

Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image27_thumb_thumb

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続します。

しかし、複数のサブスクリプションに紐づいている場合は、目的のサブスクリプションにつながらない場合もあります。

その場合は、サブスクリプションを指定してログインしてもいいのですが、Login-AzureRmAccountでのサブスクリプション指定には、そもそもとしてサブスクリプションIDが必要です。サブスクリプションIDを調べるのにブラウザでAzure Portalにログインするのも本末転倒な気がします。

そこで便利なのが、Get-AzureRmSubscriptionです。

Get-AzureRmSubscription

image_thumb1

これでサブスクリプションIDが分かったので、使いたいサブスクリプションを指定します。指定は、サブスクリプションIDでもサブスクリプション名でもいいのですが、サブスクリプションID指定をよく使います。

Select-AzureRmSubscription -SubscriptionId 'xxxx-xxxx-xxxxx-xxxx'

Select-AzureSubscriptionがいわゆるclassicと呼ばれているもので、Select-AzureRmSubscriptionがAzureリソースマネージャーによる指定となります。

注意点

Select-AzureRmSubscriptionはあくまでもAzureリソースマネージャーによるサブスクリプションの変更です。

この方法で接続およびサブスクリプション指定した場合は、以降のコマンドもhogehoge-AzureRmHogehogeのように「Azure」でなく「AzureRm」系のコマンドを使う必要があります。

Azure PowerShellの具体例(例1:WebAppsの追加)

前準備

http://hatsune.hatenablog.jp/entry/2018/04/11/010156

Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image27

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続する。

もし、複数のサブスクリプションがある場合は、サブスクリプションを指定して実行するといいでしょう。

Login-AzureRmAccount ?subscription xxxxxx-xxx-xxx-xxx-xxxx
image10

 

例1:WebAppsの追加

それではAzure PowerShellを使って具体的にWebAppsを新規追加する方法を順番にみていきましょう。

(1)リソースグループを新規作成する(既存のものを使うときには省略)
New-AzureRmResourceGroup ?Name myResoureceGroup ?Location ‘Japan West’

image16

これでmyResourceGroupという名前で西日本にリソースグループが作成できます。

(2)フリープランでApp Serviceプランを作成
New-AzureRmAppServicePlan -Name ’mywebapp0409' ?Location ‘Japan West’ -ResourceGroupName myResoureceGroup -Tier Free

image21

App Service プラン名が「mywebapp0409」のApp Serviceプランを西日本に作成しました。

(3)Webアプリを作成
New-AzureRmWebApp -Name ’mywebapp0409' ?Location ‘Japan West’ -AppServicePlan ’mywebapp0409’ -ResourceGroupName myResoureceGroup

App Webアプリ名が「mywebapp0409.azurewebsites.net」のWebアプリを西日本に作成しました。

(4)発行プロファイルの取得
Get-AzureRmWebAppPublishingProfile -Name ’mywebapp0409' -ResourceGroupName myResoureceGroup ?outputfile “outputfile”

image29

これでoutputfileという名前で発行プロファイルが保存できます。

image34

(5)Webソケットの有効化
Set-AzureRmWebApp ?Name 'mywebapp0409' -ResourceGroupName myResoureceGroup ?WebSocketsEnabled true

これでWebソケットが使えるようになります。

(6)アプリケーション設定
$AppSettings = @{"ClientId"="id";"Password"="pass"}
Set-AzureRmWebApp ?Name 'mywebapp0409' -ResourceGroupName myResoureceGroup ?AppSettings $AppSettings 

image

アプリケーション設定にClientIdとPasswordを設定しました。アプリケーション設定を定義することでWeb.Configに設定した設定値を書き換えることができます。

さいごに

あとはWebアプリをデプロイすればOKです。

Azureでは、デプロイオプションとしてWeb Appsへのデプロイ元が選択できます。VSTS、onedrive、ローカルGitリポジトリGitHub、Bitbucker、DropBoxなどから選択できます。もちろん自社内のGitを指定することも可能です。

これにはローカルgitやgithubと組み合わせてとかもできます。

Visual Studioからデプロイしてもいいでしょう。

このあたりは機会があれば、別の機会にご紹介したいと思います。

Azure PowerShellを使ってみよう

Azure Cognitive Serviceを使ったクライアントアプリを作成するときに、Azure側でサービスを有効化しようとするとAzure PortalからGUIで操作が必要です。

知っている人ならば簡単でしょうけれど、知らない人に操作を伝えようとすると画面のハードコピーを取得して、それをペタペタと貼り付けて「手順書」なるものを作らなければならない場合があります。

しかし、クラウドですからちょっとしたタイミングでAzure Portalが改善され見た目が変わったときに、元の手順書から類推できる人ならばいいのですが、ちょっとでも違っているだけで「画面が違う」というクレームを人がいたりするわけです。

Azure Cloud Shell

Azure PortalにもAzure Cloud Shellというコマンドラインでの操作方法があります。

ポータルの起動

このツールのいいところは特に何かインストールしなくても使える点です。

しかし、Azure Cloud Shellを使うにはMicrosoft Azure Files ストレージを使用するためのセットアップと低額ですが維持費用が掛かる点を嫌がるケースもあります。

そのようなときはクライアントにAzure PowerShellをインストールするのがよいでしょう。

Azure PowerShell

Azure PowerShellPowerShell ギャラリーからインストールできます。

しかし実際にやってみたらちょっと面倒だったので、Web Platform Installerを使った方がいいでしょう。

http://aka.ms/webpi-azps

image

image

Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続する。

もし、複数のサブスクリプションがある場合は、サブスクリプションを指定して実行するといいでしょう。

Login-AzureRmAccount ?subscription xxxxxx-xxx-xxx-xxx-xxxx
image

Windows 10 Ver 1803 (Build 17133.1)

Windows 10 Insider Preview Fast RingにBuild 17133.1がきました。

デスクトップ右下のPreview表示がなくなりましたので、これがRS4の正式版かな?

HoloLens RS4 Previewが公開されました。

docs.microsoft.com

ずっとOS BuildのアップデートがなくてAnniversary Updateのままで、寂しかったHoloLensですが、RS4(Spring Creators Update)はくるようです。そのPreview Buildが公開されました。

バージョン表記は、10.0.17123.1004です。17000番台が一気に来ましたね。

 

このプレビューのおすすめの1つが両手ジェスチャー。両手でウィンドウもってぐぐっとできる。片手よりも便利。そして、人って不思議なもので両手のほうが疲れない(笑)

 

あとは、もしかしたらPreviewだからかもしれないけれど、全体的に動きが高速化されていて、すごくキビキビ感が増していますね。ハード同じなのにこれはすごいと思いました。

 

更新手順はWindows 10のInsider Previewとちょっと違っていて

  1. HoloLensをSettingsからInsider Previewモードに変更
  2. HoloLens RS4 Preview packageをダウンロード
  3. Windows Device Recovery Tool を使ってリカバリ

とInsider Previewにするだけは自動で降ってこないです。自分でOSイメージ入れる感じですね。

Windows 10自体もRS4にしてHoloLensライフを楽しみましょう!

 

 

 

 

別アカウントのAzure BLOBにアクセスする

自分のAzureサブスクリプションにあるAzure Storageにアクセスするには、Azure PortalやAzure Storage Explorerなど様々な方法がありますが、コンテナにたどり着くルートは次の3つの方法があります。

  1. IDとパスワードとサブスクリプションを指定して、ストレージアカウント名→BLOB→コンテナ
  2. 接続文字列を指定→BLOB→コンテナ
  3. ストレージアカウント名とアクセスキーを指定→BLOB→コンテナ

 

この中で1の方法はBLOB以外の資源へのアクセス権も得てしまうので自分以外の人には使わせることができないルートになります。

一方、2や3の方法であれば、例えば、データファイルを入れてほしいときなどに「接続文字列」や「ストレージアカウント名とキー」をお知らせして、Azure Storage Explorerからファイルをアップロードしてもらうと手軽です。

複数のお客様とのやりとりも

  1. お客様ごとにストレージアカウントを作成
  2. 接続文字列をお客様にお知らせ(お客様ごとに異なる値になる)
  3. お客様はAzure Storage Explorerを使ってファイルエクスプローラ感覚で指定の場所にファイルを配置

で済んでしまいます。

 

実際の手順は以下のようになります。

(1)

image

[ストレージアカウント]-[BLOB]-[コンテナ]にあるファイルを確認します。

 

(2)

image

該当ストレージアカウントの接続文字列を取得します。

 

(3)

Azure Storage Explorerを起動してAzureとの接続には「Use a connection string a shared access signature URI」を選択します。これで接続文字列指定の接続が可能になります。

image

 

(4)

image

接続文字列を貼り付けます。

 

(5)

image

Azure Portalにあったファイルが確認できます。

ここでAzure Storage Explorerをつかってファイルを1個追加してみましょう。

image

image

 

(6)

ちゃんとAzure側に入ったか確認しましょう。

image

きちんとはいりましたね!

「ストア」アプリが起動しなくなったら

InsiderPreviewのBuild 17115.rs4_release.180302-1642にあげるときに何かあったらしく、タスクバーのストアアイコンが見えなくなって(領域はある)ストアが起動してくれなくなりました。

そんなときはサクッと削除して、サクッと入れなおしてしまいましょう。

f:id:hatsune_a:20180308023155p:plain

(1) パッケージのフルネームを取得

Get-Appxpackage -Allusers | Select-String WindowsStore

今回はここで2つでてきちゃうような状態だからトラブっているんですね。

(2) 削除

フルネームを指定して削除しましょう。念のため2つとも。

Get-AppxPackage Microsoft.WindowsStore_11712.1001.18.0_x64__8wekyb3d8bbwe | remove-AppxPackage
Get-AppxPackage Microsoft.WindowsStore_11712.1001.20.0_x64__8wekyb3d8bbwe | remove-AppxPackage

(3) 登録

Add-AppxPackage -register “C:\Program Files\WindowsApps\Microsoft.WindowsStore_11712.1001.20.0_
x64__8wekyb3d8bbwe\AppxManifest.xml” -DisableDevelopmentMode

 

これで無事に起動するようになりました。

「きどうしなーい」ってなったらぜひお試しください。