Help us understand the problem. What is going on with this article?

Azure のツール周りの入門セッションを日本語訳した (後編) Azure Cloud Shell, Azure PowerShell 編 ( #MSIgniteTheTour 登壇内容 )

2020 年 1 月 22 - 23 日開催の、マイクロソフト公式大型カンファレンス『Microsoft Ignite The Tour Osaka』にて、
私は以下の 2 セッション登壇することになりました。

  1. Microsoft のクラウド Azure 入門セッション
  2. Azure のツール周りの入門セッション

最初の『Azure 入門セッション』の内容については 以前の記事 で書いているので、

今回は 2 セッション目の『Azure の CLI ツール周り入門』についてお話します。

翻訳前のセッション (英語)

image.png

Jeremy Likness さんによるオリジナルセッション『 Discovering Azure Tooling and Utilities 』はこちらです:
https://myignite.techcommunity.microsoft.com/sessions/83203?source=sessions

今回、この、アメリカの『Microsoft Ignite 2019』で発表されたセッションを、
私が日本語訳して日本の方々向けにデリバーすることになったので、
この記事に日本語での補足も含めてまとめます。

で、デモ内容とかも全部記事に落としたら、めっちゃ長くなったので、
前編と後編に記事を分けて書きます。

もくじ

  1. Visual Studio Code - VSCode と Azure 拡張機能 (前回の記事)
  2. Azure Cloud Shell - Azure Cloud Shell と Azure CLI
  3. Azure PowerShell
  4. ARM Templates - Azure Resource Manager Template

Azure Cloud Shell, Azure PowerShell 編 (この記事) もくじ

  1. 2.Azure Cloud ShellAzure CLI

    1. Azure Cloud Shell
      • さまざまなアクセスポイント
      • オプション
      • プリインストールされたもの
    2. Azure Cloud Shell デモ
      1. Azure Cloud Shell デモ 1 - Azure ポータル画面での Cloud Shell
      2. Azure Cloud Shell デモ 2 - shell.azure.com での Cloud Shell
      3. Azure Cloud Shell デモ 3 - ローカルマシン上のターミナル での Cloud Shell
      4. Azure Cloud Shell デモ 4 - Cloud Shell で動かすシェルスクリプト (リソースグループを作る)
      5. Azure Cloud Shell デモ 5 - Cloud Shell で動かすシェルスクリプト (Azure Container Instances でコンテナを作る)
  2. 3.Azure PowerShell

    1. PowerShell
    2. PowerShell 環境チェック
    3. Azure PowerShell デモ
  3. つぎ

2. Azure Cloud Shell と Azure CLI

image.png

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 Cloud Shell

image.png

さまざまなアクセスポイント

Azure のポータル画面をはじめ、
Azure Cloud Shell には、さまざまなアクセスポイントがあります

オプション

  • 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 など、様々な環境がプリインストールされているので便利です

image.png

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

Azure Cloud Shell

画面上部の「Cloud Shell」ボタンを押すと、
Web ブラウザの中の、画面下半分に shell ウィンドウが現れます。

Azure Cloud Shell

ここで、Bash と PowerShell を切り替えられます

image.png

Azure Cloud Shell デモ 2 - shell.azure.com での Cloud Shell

shell.azure.com でも Azure Cloud Shell を扱えます。

image.png

Azure Cloud Shell デモ 3 - ローカルマシン上のターミナル での Cloud Shell

ローカルマシン上のターミナルでも Azure Cloud Shell を扱えます。
デモでは Windows Terminal からやっていました。

Windows Terminal では、さまざまなシェルが使えて便利です。(私は入れてないけど Git Bash も入ります)

↓ローカルの PowerShell Core (node version v12)

image.png

↓ クラウド上の Azure Cloud Shell (node version v8)

image.png

Azure Cloud Shell デモ 4 - Cloud Shell で動かすシェルスクリプト (リソースグループを作る)

VSCode に戻ります。

image.png

# リソースグループを作る
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 のやつに貼ってた)

Untitled.png

最初の一行目 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 のものが立ちます

image.png

これをコピーして web ブラウザで確認すると、ちゃんとこの URL で web サイトが立っていることが分かります

image.png

3. Azure PowerShell

まず、 PowerShell とは、マイクロソフトが開発したコマンドシェル/スクリプト言語です。
Windows Server 2008 R2 / Windows 7 から標準で搭載された Windows 管理用の CLI ツールです。私はコマンドプロンプトの後継と理解しています。

現在は主に Windows システム管理用に使われていますが、最近はもっと広く使われるようになっています。

PowerShell

現在現役で頑張っている PowerShell はこの 2 種類があります

  1. Windows PowerShell
    • Windows でのみ動く、Windows システム管理用 CLI ツール
    • .NET Framework 製 (= Windows でのみ動く)
    • Windows PowerShell 5.1 が Windows 10 標準で入っている
  2. 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

image.png

↓ Azure Cloud Shell で動いている PowerShell 環境。同じく最新の 6.2.3。あと Azure Cloud Shell の裏側 Linux なんですね。

image.png

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 に貼り付けます。

image.png

前回は aci-demo-007 という URL で発行したので、
今回はちょっと変えて aci-demo-007-posh としています。

↓ ちゃんとその新しい URL でデプロイが完了していて、Webサイトが動いているのが確認できます

image.png

2 つ目のコマンド Get-AzContainerGroup | where {$_.Name -eq 'mycontainerposh'} | Select IpAddress も叩いて
パブリック IP アドレスを表示させてみます

image.png

ちなみに bash 版でも echo を使って同じようなことができます

image.png

復習しよう

この記事で書いたことは
マイクロソフト公式の無料オンライン学習サイト『 Microsoft Learn 』の
こちらのコースにもよくまとまっているので、
ぜひ自主学習にどうぞ!
https://docs.microsoft.com/ja-jp/users/msignite2019

chomado
ITエンジニア兼マンガ家の千代田まどか (ちょまど) です。Microsoft 社の Cloud Developer Advocate として、デベロッパーコミュニティの支援を行っています。松屋とゲームとアニメが好きです
https://chomado.com/
microsoft
マイクロソフトのメンバーが最新の技術情報をお届けします。Twitterアカウント(@msdevjp)やYouTubeチャンネル「クラウドデベロッパーちゃんねる」も運用中です。
https://aka.ms/MSFT-Docs-JPN
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした