今回は VSCode を使って、Azure に Terraform でリソースを作成したいと思います。
以下の手順は、Microsoft のチュートリアルを参考に実施しています。
前提
使用する環境は Windows10 pro で、以下の VSCode はインストール済みであるとします。
VSCode の拡張パッケージをインストール
Azure Account をインストールします。

Azure Storage の準備
以前の記事「azure-clooudshell」でも紹介しましたが、Azure 側でもストレージアカウントの準備が必要です。
以下のものを準備する必要があります。全て新たに作成しても構いません。
- サブスクリプション
- リソースグループ
- ストレージアカウント
事前に準備しておく場合は、以下のようにネットワーク設定しておくと CloudShell の mount が可能です。

name |
value |
Allow access from |
All networks |
Routing preference |
Microsoft network routing endpoint |
Publish route-specific endpoints |
Microsoft network routing endpoint |
Azure Storage のネットワークルーティングについて詳しくは
こちらを参照ください。
Azure CloudShell の準備
CloudShell の準備は簡単で、Azure Portasl の右上にあるこのボタンを押すだけです。

押したら、Bash か PowerShell か聞かれますので好きな方を選択して、Azure Storage を選択します。
事前にストレージアカウントを作成している場合は、以下のように入力することが出来ます。

Create Storage をすると以下のように PowerShell が立ち上がります。
Requesting a Cloud Shell.Succeeded.
Connecting terminal...
MOTD: Manage Azure Active Directory: Get-Command -Module AzureAD*
VERBOSE: Authenticating to Azure ...
VERBOSE: Building your Azure drive ...
PS /home/attsun1031> ls
clouddrive
ここからが本編です
VSCode で Azure Account に Sign in
Azure の準備について、1つ1つ解説したのでここまで長かったですね。
それでは、VSCode で Azure Account に Sign in してみましょう。
VSCode を開き、ウィンドウ上部にあるメニューの View から Command Pallate... を選択します。Windows なら Ctrl + Shift + p でも開きます。
Azure: Sign In を選択します。

自動的にブラウザに飛ばされて、Azure Account に Sign in するとこのような画面になります。

VSCode で cloudShell 起動
VSCode を開き、ウィンドウ上部にあるメニューの View から Command Pallate... を選択します。Windows なら Ctrl + Shift + p でも開きます。
Azure: Open PowerShell in Cloud Shell を選択します。
VSCode のターミナルにも先ほどブラウザで見たものと同様に CloudShell が立ち上がっています。
Requesting a Cloud Shell...
Connecting terminal...
MOTD: Save files to $home/clouddrive for persistence across sessions
VERBOSE: Authenticating to Azure ...
VERBOSE: Building your Azure drive ...
PS /home/attsun1031> terraform --version
Terraform v0.12.28
PS /home/attsun1031> git --version
git version 2.7.4
PS /home/attsun1031> python -V
Python 3.5.2
初めから、Terraform, Git, Python などがインストール済みです。助かりますね。
working directory 作成
作業用ディレクトリを作成します。
PS /home/attsun1031> ls
clouddrive
PS /home/attsun1031> cd ./clouddrive/
PS /home/attsun1031/clouddrive> New-Item work -ItemType "directory"
Directory: /home/atsushi_koizumi/clouddrive
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 7/12/2020 8:09 AM work
PS /home/attsun1031/clouddrive> cd ./work/
PS /home/attsun1031/clouddrive/work> New-Item 20200712 -ItemType "directory"
Directory: /home/atsushi_koizumi/clouddrive/work
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 7/12/2020 8:10 AM 20200712
PS /home/attsun1031/clouddrive/work> ls
20200712
Azure Portal 側から確認すると、work フォルダが作成されていることが分かります。

VSCode で Clouddrive を開く
Azure FIleShare へネットワークドライブ接続
以下の画像のような手順でコマンドをコピーします。

新たに PowerShell のターミナルを開き、ペーストします。
PS C:\Users\koizumi> $connectTestResult = Test-NetConnection -ComputerName cloudshellkoizumi.file.core.windows.net -Port 445
PS C:\Users\koizumi> if ($connectTestResult.TcpTestSucceeded) {
>> # Save the password so the drive will persist on reboot
>> cmd.exe /C "cmdkey /add:`"cloudshellkoizumi.file.core.windows.net`" /user:`"Azure\cloudshellkoizumi`" /pass:`"xxxxxxxxx==`""
>> # Mount the drive
>> New-PSDrive -Name V -PSProvider FileSystem -Root "\\cloudshellkoizumi.file.core.windows.net\aqua-koizumi" -Persist
>> } else {
>> Write-Error -Message "Unable to reach the Azure storage account via port 445..."
>> }
CMDKEY: 資格情報を正しく追加しました。
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
V 5.00 1.00 FileSystem \\cloudshellkoizumi.file.core.wi...
VSCode で Clouddrive を開く
ネットワークドライブを見ると、V ドライブが追加されています。

これで、VSCode で Clouddrive(Vドライブ)を開くことが出来ます。そして中には先ほど作成した作業用ディレクトリが存在しています。

以上で、VSCode と Azure CloudShell, Clouddrive の連携が完了です。
これで VSCode を使って Azure の resource をいじれますね。作業が捗りそうです。
Icons made by Flat Icons from www.flaticon.com
VNetVSCodeStorageAccountCloudShell