Azure Cloud ShellをローカルのVisual Studio Code/Windows Terminalに統合する方法:Microsoft Azure最新機能フォローアップ(89)
「Azure Cloud Shell」のシェル環境が、ローカルツールから直接利用できるようになりました。ローカルツールとは開発者向けの「Visual Studio Code」とWindows 10 バージョン1903以降向けの端末アプリ「Windows Terminal(Preview)」です。
クラウド提供のシェルをローカルのツールに統合
「Azure Cloud Shell」は、Microsoft Azureのクラウドから提供されるLinuxコンテナベースのBashシェル環境であり、Azure CLI(az)およびPowerShell Core(pwsh)ベースのAzure PowerShell環境を提供します。
Azure Cloud Shellはもともと、LinuxコンテナのBashとWindows Server 2016コンテナのWindows PowerShell 5.1ベースのものでスタートしましたが、クロスプラットフォームの.NET CoreやPowerShell Coreの開発が進み、2018年7月にLinuxコンテナベースに一本化されました。
現在のAzure Cloud ShellのBashとPowerShellはベースが同じであり、Bashで「pwsh」と入力する、またはPowerShellで「bash」と入力すると、環境を相互に切り替えることができるようになっています。
- Azure Cloud ShellがフルLinuxベースに(本連載 第57回)
Azure CLIやAzure PowerShellの環境は、Windowsだけでなく、LinuxやmacOSのローカル環境にインストールして利用できます。Azure Cloud Shellのメリットは、ローカルにこれらのツールをインストールして、更新を管理する必要がなく、Azureポータル(https://portal.azure.com)やAzure Cloud Shellサイト(https://shell.azure.com/)、Webブラウザだけで常に最新の安定バージョンを開始して、すぐにAzure上の自分のテナント管理に利用できることにあります(画面1、画面2)。
画面1 Azureポータル(https://portal.azure.com)では、「Cloud Shell」アイコンをクリックするだけで、素早くBashまたはPowerShellのシェル環境を開始して、Azureを管理できる
そして、Azure Cloud Shellをローカルの開発ツールや端末アプリに統合する方法がMicrosoftの公式ブログで紹介されました。
一つは、オープンソースでマルチプラットフォーム対応の高機能なコードエディタである「Visual Studio Code」への統合です。Visual Studio Codeに「Node.js 6」以降および「Visual Studio Code Azure Account Extension」を追加することで、Azure Cloud ShellのBashまたはPowerShellにツール内から直接接続できるようになります(画面3)。
- How to Use Cloud Shell in Visual Studio Code[英語](Microsoft ITOps Talk Blog)
- Visual Studio Codeのダウンロード[英語](Visual Studio Code)
- Node.jsのダウンロード[英語](Node.js)
- Visual Studio Code Azure Account Extensionのダウンロード[英語](Visual Studio Marketplace)
もう一つの方法は、Windows 10 バージョン1903以降向けに提供されている、マルチタブ対応を含む高機能な端末アプリ「Windows Terminal(Preview)」への統合です。Windows Terminal(Preview)は、Windows 10標準のWindows PowerShell(powershell.exe)、コマンドプロンプト(cmd.exe)、Windows Subsystem for Linux(WSL)対応のインストール済みLinuxシェルを1つのアプリに統合し、シェル環境(透過設定、色、背景、アイコンなど)のカスタマイズ機能を提供します。
- Connecting Azure Shell in the new Windows Terminal(Preview)[英語](Microsoft ITOps Talk Blog)
- The Azure Cloud Shell Connector in Windows Terminal[英語](Windows Command Line Tools for Developers)
Azure Cloud ShellをWindows Terminalに統合するには?
Windows Terminal(Preview)は、Windows 10 バージョン1903(またはInsider Previewや次期バージョン)向けのプレビュー版アプリですが、Microsoft Storeからこのアプリ(無料)をインストールするだけで、比較的簡単にAzure Cloud Shellとの統合を試すことができます。
具体的には、Windows Terminal(Preview)アプリの「Settings」をクリックして、テキストベースの構成ファイル「profiles.json」を開き、「"profiles":」セクションに上記の公式ブログで紹介されている設定例をコピー&ペーストするだけです。
他のプロファイル設定(Windows PowerShellやcmdなど)との間をカンマ(,)でつなぎ、「"profiles":」セクションの先頭、最後、またはその間の好みの場所に配置します(画面4)。「profiles.json」を上書き保存すると、「+」メニューに「Azure Cloud Shell」が追加されます。
「+」メニューから「Azure Cloud Shell」をクリックすると、「To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code ######### to authenticatite.」と表示されるので、Webブラウザを起動してURL「https://microsoft.com/devicelogin」にアクセスし、表示されたコード(#########の部分)を入力します。
その後、Visual Studio Codeアプリケーションにサインインするように求められるので、Azureサブスクリプションの資格情報を入力してサインインし、完了したらWebブラウザを閉じます(画面5)。
サインインが完了すると、接続先テナントを選択するように要求されるので、番号を入力し、接続設定を保存するかどうかを「y/n」で応答します。これでBashのシェルが起動します。「az」コマンドを入力すればAzure CLIを利用できますし、任意のLinuxコマンドを実行することもできます(画面6)。
Windows 10のテーマ設定やWindows Terminal(Preview)の設定によっては、公式ブログで紹介されているプロファイル設定ではBashのプロンプトやメッセージが表示されない場合があるようです。その場合は、「profiles.json」を開いて、色設定をカスタマイズしてください。例えば、「"background": #59B4D9",」を追加すると、以下の画面7のようになります。
Bashに接続後、「pwsh」と入力すると、PowerShell CoreベースのAzure PowerShell環境に切り替えることもできます。
ただし、Windows Terminal(Preview)でこれを行うと、PowerShellのカーソルが常に画面先頭の位置になってしまい、入力したコマンドの実行結果の出力がそのすぐ下に、既に表示されている内容の上に重なるように表示されるという問題があります。
これは極めて悪いエクスペリエンスであり、現状、PowerShellに切り替えて利用するには無理があります。この問題に関する以下のバグ報告には、原因としてPowerShellのカーソル位置の問い合わせにWindows Terminal(Preview)アプリが答える方法を知らないことなどが挙げられています。
- Bug Report:PowerShell Core launched by Azure Cloud Shell bash has positioning issues #2267[英語](GitHub)
ちなみに、カーソル位置と出力の問題は、Bash側でTERMを空設定(unset TERM)にすることで解消できましたが、その場合、入力コマンドのエコーが二重になるという別の問題がありました。
この他、AzureポータルのAzure Cloud ShellやAzure Cloud Shellサイトでは、[Ctrl]+[C]キー/[Shift]+[Insert]キーによるコピー/ペーストがサポートされます(Windowsの場合)。Visual Studio CodeのAzure Cloud Shellでは、[Ctrl]+[C]キー/[Ctrl]+[V]キーが利用可能です(Windowsの場合)。しかし、Windows Terminal(Preview)アプリ内のAzure Cloud Shellではできないようです。あくまでもアプリがプレビュー版であるということを承知の上で試してみてください。
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQL Serverマイグレーションの歩き方[前編]――マイグレーションの作業ステップ
2019年7月のSQL Server 2008/2008 R2の延長サポート終了に伴い、EOS対応としてアップグレードやマイグレーションを準備/実施している方も多いでしょう。「前編」となる今回は、SQL Serverのマイグレーションに必要な作業ステップについて解説します。 - サポートが終了するサーバOSを使い続けるリスクを考える
Windows Server 2008/2008 R2のサポート終了日まで後2年を切った。今後、さまざまなところでサポート終了に関するトピックを目にする機会が増えるだろう。そもそも、サーバOSのサポートが終了する影響とは、どのようなものなのだろうか。本連載では、Windows Server 2008/2008 R2を新しいサーバOSへ切り替える必要性やメリットなどを解説する。 - どうするSQL Server 2008のサポート期限? そうだ、クラウドへいこう!
2019年7月9日のSQL Server 2008/2008 R2の製品サポートの終了まで、残すところあと1年と少し。2018年5月、オンプレミスまたはクラウドの最新SQL Server環境への移行を支援するツールの最新版と大規模データベース移行に適した移行サービスの正式版が利用可能になりました。 - Azureで利用可能なPaaSのSQL Serverの特徴を学ぼう[前編]
本稿では、Microsoft Azureで利用可能なPaaSとして提供されている「SQL Server」の特徴やメリットを紹介します。最新機能ではなく、これからAzureのSQL Serverを利用しようと考えている方に、全体的な特徴をつかんでもらえる内容です。前編では、Azureで提供されているPaaSのSQL Serverの種類と特徴を紹介します。