2020 年 1 月 22 - 23 日開催の、マイクロソフト公式大型カンファレンス『Microsoft Ignite The Tour Osaka』にて、
私は以下の 2 セッション登壇することになりました。
最初の『Azure 入門セッション』の内容については 以前の記事 で書いているので、
今回は 2 セッション目の『Azure の CLI ツール周り入門』についてお話します。
翻訳前のセッション (英語)
Jeremy Likness さんによるオリジナルセッション『 Discovering Azure Tooling and Utilities 』はこちらです:
https://myignite.techcommunity.microsoft.com/sessions/83203?source=sessions
今回、この、アメリカの『Microsoft Ignite 2019』で発表されたセッションを、
私が日本語訳して日本の方々向けにデリバーすることになったので、
この記事に日本語での補足も含めてまとめます。
で、デモ内容とかも全部記事に落としたら、めっちゃ長くなったので、
前編と後編に記事を分けて書きます。
もくじ
- Visual Studio Code - VSCode と Azure 拡張機能 (前回の記事)
- Azure Cloud Shell - Azure Cloud Shell と Azure CLI
- Azure PowerShell
- ARM Templates - Azure Resource Manager Template
Azure Cloud Shell, Azure PowerShell 編 (この記事) もくじ
-
2.Azure Cloud Shell と Azure CLI
-
Azure Cloud Shell
- さまざまなアクセスポイント
- オプション
- プリインストールされたもの
-
Azure Cloud Shell デモ
- Azure Cloud Shell デモ 1 - Azure ポータル画面での Cloud Shell
- Azure Cloud Shell デモ 2 - shell.azure.com での Cloud Shell
- Azure Cloud Shell デモ 3 - ローカルマシン上のターミナル での Cloud Shell
- Azure Cloud Shell デモ 4 - Cloud Shell で動かすシェルスクリプト (リソースグループを作る)
- Azure Cloud Shell デモ 5 - Cloud Shell で動かすシェルスクリプト (Azure Container Instances でコンテナを作る)
-
Azure Cloud Shell
-
3.Azure PowerShell
- PowerShell
- PowerShell 環境チェック
- Azure PowerShell デモ
つぎ
2. Azure Cloud Shell と Azure CLI
Azure のリソースにコマンドラインでアクセスできるツールです。
Azure Cloud Shell
Azure Cloud Shell とは、 ブラウザ上で動くシェル環境で、Azure のリソースを管理できます。
参考)Azure Cloud Shell の公式ドキュメント
→ https://docs.microsoft.com/ja-jp/azure/cloud-shell/overview
↓ Web ブラウザの中、Azure のポータル画面 からアクセスできる Azure Cloud Shell
さまざまなアクセスポイント
Azure のポータル画面をはじめ、
Azure Cloud Shell には、さまざまなアクセスポイントがあります
- portal.azure.com
- shell.azure.com
- Docs.Microsoft.com
- Azure Mobile app
- VS Code Azure Account extension
オプション
- Bash or PowerShell
- Integrated Cloud Shell editor
- Pre-configured
- $HOME persistence across sessions
Azure Cloud Shell 自体にはお金はかかりませんが、Cloud Shell の設定などを保存しておくために Azure Storage を使うので、その分はかかります(とても安い)。
Azure Storage に設定を保存しておくので、どこからアクセスしても同じ環境で動作する、とも言えます($HOME persistence across sessions など)
プリインストールされたもの
Azure Cloud Shell には、git, MySQL など、様々な環境がプリインストールされているので便利です
Azure Cloud Shell デモ
Azure Cloud Shell デモ 1 - Azure ポータル画面での Cloud Shell
まず、Web ブラウザで、Microsoft Azure のポータルページ portal.azure.com を開きます。
画面上部に「Cloud Shell」を開けるボタンがあるので、そこをクリックします。
Azure Cloud Shell とは、Azure リソースを管理するための、Web ブラウザ上で利用できるシェル環境です。
参考)Azure Cloud Shell の公式ドキュメント
→ https://docs.microsoft.com/ja-jp/azure/cloud-shell/overview
画面上部の「Cloud Shell」ボタンを押すと、
Web ブラウザの中の、画面下半分に shell ウィンドウが現れます。
ここで、Bash と PowerShell を切り替えられます
Azure Cloud Shell デモ 2 - shell.azure.com での Cloud Shell
shell.azure.com でも Azure Cloud Shell を扱えます。
Azure Cloud Shell デモ 3 - ローカルマシン上のターミナル での Cloud Shell
ローカルマシン上のターミナルでも Azure Cloud Shell を扱えます。
デモでは Windows Terminal からやっていました。
Windows Terminal では、さまざまなシェルが使えて便利です。(私は入れてないけど Git Bash も入ります)
↓ローカルの PowerShell Core (node version v12)
↓ クラウド上の Azure Cloud Shell (node version v8)
Azure Cloud Shell デモ 4 - Cloud Shell で動かすシェルスクリプト (リソースグループを作る)
VSCode に戻ります。
# リソースグループを作る
az group create --name myACIDemo --location eastus
# コンテナを作る
az container create --resource-group myACIDemo --name mycontainer --image microsoft/aci-helloworld --dns-name-label aci-demo-007
# パブリック IP アドレスを表示させる
echo "Container IP Address:"
echo $(az container list --query "[?contains(name, 'mycontainer')].[ipAddress.ip]" --output tsv)
これを Cloud Shell にコピペします。(デモでは Windows Terminal のやつに貼ってた)
最初の一行目 az group create --name myACIDemo --location eastus
は、リソースグループを作っています。
「myACIDemo」という名前で、リージョンはアメリカ東部に、リソースグループを作る、という意味です。
「リソースグループ」というのは、Azure 上の論理的な docker コンテナのようなものです。(詳細はこちらの記事『Microsoft のクラウド Azure の入門講座を和訳した (後編)』で)
Azure Cloud Shell デモ 5 - Cloud Shell で動かすシェルスクリプト (Azure Container Instances でコンテナを作る)
次は az container create --resource-group myACIDemo --name mycontainer --image microsoft/aci-helloworld --dns-name-label aci-demo-007
を実行します。
microsoft/aci-helloworld
というハローワールド的な docker image です。
すると指定した dns-name-label
通りの URL のものが立ちます
これをコピーして web ブラウザで確認すると、ちゃんとこの URL で web サイトが立っていることが分かります
3. Azure PowerShell
まず、 PowerShell とは、マイクロソフトが開発したコマンドシェル/スクリプト言語です。
Windows Server 2008 R2 / Windows 7 から標準で搭載された Windows 管理用の CLI ツールです。私はコマンドプロンプトの後継と理解しています。
現在は主に Windows システム管理用に使われていますが、最近はもっと広く使われるようになっています。
PowerShell
現在現役で頑張っている PowerShell はこの 2 種類があります
-
Windows PowerShell
- Windows でのみ動く、Windows システム管理用 CLI ツール
- .NET Framework 製 (= Windows でのみ動く)
- Windows PowerShell 5.1 が Windows 10 標準で入っている
-
PowerShell Core
- Windows, Linux, macOS で動く CLI ツール
- .NET Core 製 (= Windows, Linux, macOS で動く)
- GitHub でオープンソースで開発されている (github.com/PowerShell/PowerShell)
- 現在の最新は PowerShell Core 6.2 (2019年3月リリース)
PowerShell 環境チェック
↓ 私のローカルマシン (Windows 10) で動いている PowerShell 環境。6.2.3
↓ Azure Cloud Shell で動いている PowerShell 環境。同じく最新の 6.2.3。あと Azure Cloud Shell の裏側 Linux なんですね。
Azure PowerShell デモ
ローカルマシンの PowerShell からも
Azure のリソースを制御してみましょう
# コンテナをつくる
New-AzContainerGroup -ResourceGroup myACIDemo -Name mycontainerposh -Image microsoft/aci-helloworld -DnsNameLabel aci-demo-007-posh
# Get Public IP Address
Get-AzContainerGroup | where {$_.Name -eq 'mycontainerposh'} | Select IpAddress
このコマンドを、ローカルマシンの Power Shell に貼り付けます。
前回は aci-demo-007
という URL で発行したので、
今回はちょっと変えて aci-demo-007-posh
としています。
↓ ちゃんとその新しい URL でデプロイが完了していて、Webサイトが動いているのが確認できます
2 つ目のコマンド Get-AzContainerGroup | where {$_.Name -eq 'mycontainerposh'} | Select IpAddress
も叩いて
パブリック IP アドレスを表示させてみます
ちなみに bash 版でも echo を使って同じようなことができます
復習しよう
この記事で書いたことは
マイクロソフト公式の無料オンライン学習サイト『 Microsoft Learn 』の
こちらのコースにもよくまとまっているので、
ぜひ自主学習にどうぞ!
→ https://docs.microsoft.com/ja-jp/users/msignite2019