Azure PowerShell のモジュールが読み込めないエラー

Azure PowerShell で稀に見かける以下のエラーは、再起動すれば治る模様。

そういえば、新バージョンを入れた直後に出て、気づくと直っていた気がする。

必要なモジュール 'Azure.Storage' が読み込まれていません。このモジュールを読み込むか、ファイル 'C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1' の 'RequiredModules' からこのモジュールを削除してください。
  • Azure PowerShell のインストールおよび構成方法
    https://azure.microsoft.com/ja-jp/documentation/articles/powershell-install-configure/

 

抜粋:

PowerShell $env:PSModulePath には、WebPI からのインストール時に生じる可能性がある既知の問題があります。システムの更新やその他のインストールでコンピューターの再起動が必要になった場合、Azure PowerShell のインストール パスが $env:PSModulePath の更新に含まれない場合があります。このような場合は、インストールまたはアップグレード後に Azure PowerShell コマンドレットを使用しようとすると、「コマンドレットは認識されません」というメッセージが表示されることがあります。このような場合は、コンピューターを再起動すると問題が解決します。

 

確かにシステムの環境変数 [PSModulePath] に以下のような値が追加されているので、この兼ね合い (?) ですかね。

環境変数

Azure Portal をカスタマイズしてみる

高添さんが Azure Stack で 「日本全国 Azure データセンター化計画」 を発動していたので、乗っかってみるなど。

ひとまず、地図生成できる API を探したところ Google Static Maps API が手軽で良さそうでした。(Bing でもきっとできそう…)
適当に以下のサイトとかを参考にさせてもらいつつ、日本地図 + 自分のリージョンの座標を突っ込んで終わり。

https://syncer.jp/how-to-use-google-static-maps-api

我が家の Azure Stack 環境は先日つぶしてしまったので、普通の Azure Portal ですけどね。

portal

 

ダッシュボードにタイルを足して、以下のような感じで画像を表示させるだけです。

Azure Stack DateCenter
<img src = "https://maps.googleapis.com/maps/api/staticmap?center=tokyo&size=500x300&zoom=8&markers=|size%3Amedium|35.620206%2c139.728209">

Azure Stack のサーバーを車載すれば日本縦断とかできそうっすね。

Azure Subscription のサマリーを生成するスクリプトを公開しました

2017/01/14 追記: アップデートしました。=> Get-SubscriptionDetails を大幅アップデートしました

 

どうも。業務外で徐々に作っていた Azure Subscription のサマリーを生成するスクリプトが一段落したので公開しました。

Get-SubscriptionDetails (https://github.com/ShuheiUda/Get-SubscriptionDetails)

概要:
Azure の ASM、ARM の VM / Storage / Network 系の情報がレポートとして生成されます。
サンプルはこちらをどうぞ。

Get-SubscriptionDetails_0_8_0

用途:
構成変更前にわざわざメモするのが面倒なときに。
あと Azure 系のトラブルシューティングの初動にもどうぞ。

  • ストレージ アカウントが消せないんだけど => ディスクとかイメージが残ってますけど?
  • ストレージの性能出ないんだけど => そもそも Standard Storage ですよね…?
  • VPN つながらないんだけど => 対向側の IP 間違ってますけど?

とか、再現条件なり環境情報を教えてくれない人に限って、初歩的なミスでハマってたりするので。

TIPS:
Azure Automation と組み合わせたりすると幸せになれるかも。(New-AzureSession 内にあるログイン処理周りだけ書き換えてください)
PowerShell の $Profile で Set-Alias しておくと楽かも。(Set-Alias gsd \\file-server\shares\scripts\Get-SubscriptionDetails.ps1)

まあ、Azure を業務で使ってる人なら、当然このくらい自作して持ってると思いますけど、
それっぽいの Web に見当たらなかったので気まぐれで作ってみました。
MIT ライセンスですので、商用・非商用問わず、適当に改変してお好みでご利用くださいませ。

バグ報告とかフィードバックは大歓迎ですが、できれば「こんな風になおしてみたよ」って感じで修正案も頂けると助かります。
(でないと多分修正に時間を割くのが一か月後とかになるかと。)

ではでは。

AAD のテナント ID 確認方法

忘れそうなのでメモ。

AAD のテナント ID はポータル上の表示がないが、クラシック ポータルの URL で確認可能。
https://manage.windowsazure.com/contoso.onmicrosoft.com#Workspaces/ActiveDirectoryExtension/Directory/<テナント ID>/directoryQuickStart

[参考]
https://social.msdn.microsoft.com/Forums/azure/en-US/35046fb2-5996-48a6-99f0-76da2e8dd28a/how-to-get-azure-active-directory-tenant-id-in-azure-portal-?forum=WindowsAzureAD

追記: ブチザッキの中の人から、こんな情報もいただきました。

さらに追記: 新ポータルで見れるようになってました。

ARM ベースの Azure Storage にカスタム ドメインを設定する方法

Azure 上のリソースを整理していたのですが、ARM の Storage にカスタム ドメインって設定できるのかが気になって調べてみました。結論から言うと、ポータルにはないけど PowerShell とか CLI だとできるみたいですね。

ネタ元
http://stackoverflow.com/questions/32117912/azure-storage-non-classic-v2-how-to-configure-custom-domain/

使用するのは Set-AzureRmStorageAccount の –CustomDomainName オプションのようです。
ヘルプは以下もしくは MSDN を。

PS > Get-Help Set-AzureRmStorageAccount -Examples

名前
    Set-AzureRmStorageAccount

概要
    Update the Storage Account properties

    ————————–  Set Storage Account type  ————————–

    PS C:\> # Set account type
              Set-AzureRmStorageAccount -ResourceGroupName “myresourcegroup” -AccountName “mystorageaccount” -Type “Sta
    ndard_RAGRS”

 

 

    ————————–  Set Custom Domain  ————————–

    PS C:\> #Set custom domain
              Set-AzureRmStorageAccount -ResourceGroupName “myresourcegroup” -AccountName “mystorageaccount” -CustomDom
    ainName “www.domainname.com” –UseSubDomain $true

こんな感じで実行します。

PS > Set-AzureRmStorageAccount –ResourceGroupName "<リソース グループ名>" –AccountName "<ストレージ アカウント名>" –CustomDomainName "<カスタム ドメイン名>"

あとは、DNS 側で CNAME を設定すれば OK なのかなという感じ。
(思い立って調べてみたけど、特にカスタム ドメインにする必要性がないので試してないです。)