Azure Cloud Shellでテトリスを遊ぶ
はじめに
Azure Portalからすぐに起動できるAzure Cloud Shellの機能を学びながら、Cloud Shellでテトリスをして遊びます!!
Azure Cloud Shellのおさらい
Azure Cloud Shellは、すぐに使えるブラウザベースのターミナルです。非常に強力かつ簡単に使えるツールで皆さんも活用されているかと思います。
Azure Cloud Shellに導入されているツール
よく使うツールがプレインストールされており、Azure Cloud Shellを開いてすぐにAzure CLIやgit、Terraformコマンドが使用できます。
Azure Cloud Shell内のツールは、自動的に最新バージョンに更新されます。
Azure CLIはaz login不要で、Azure Portalにログインしているユーザーとして実行されます。
Azure Cloud Shellにツールを追加導入したいとき
Azure Cloud Shellではroot権限を使用することができないため、yumコマンド等で追加のパッケージインストールは行えません。
特権を使用しないPythonのモジュールインストールや、wgetを用いたバイナリのダウンロードでツールを導入する必要があります。
Azure Cloud Shellのストレージ
2種類のストレージ設定が選択できます。Azure Cloud Shellを初めて起動するときに、いずれかを選択・設定します。
とりあえず使ってみたい場合は、(ストレージアカウントは不要です)のエフェメラルセッションでOKです。
-
(ストレージアカウントは不要です)エフェメラルセッション
- 2024/5に追加された機能で、直ぐにAzure Cloud Shellを使用することが出来ますが、ウィンドウを閉じたりセッションがタイムアウトすると、保存していたファイルはすべて消失します。
- セッションは20分間無操作状態が続くとタイムアウトします。
-
(ストレージアカウントをマウントする)永続的なストレージを使ったセッション
- 事前に用意しておいたストレージアカウント、もしくはAzure Cloud Shellを初めて起動したときの設定画面で作成したストレージアカウントをマウントすることで、ホームディレクトリの内容がストレージアカウントに格納・永続化されます。
Azure Cloud Shellのネットワーク
Azure Cloud ShellはAzureが管理するネットワーク上で実行されますが、任意のVNETにデプロイして動かすこともできます。
VNETにデプロイすることで、VNET内のVMやPrivateEndpointにアクセスしたり、NSGの適用やインターネットアクセスの制御を行うことも可能になります。
Azure Cloud Shellの料金
無料で使えます!
ファイルを永続化させるためにストレージアカウントを設定した場合は、そのストレージアカウントの利用料が発生します。
テトリスで遊ぶ
Azure Cloud ShellにプレインストールされているツールをLearnのドキュメントで確認してみると、Emacsが入っていました!
Emacsはオープンソースのテキストエディタなのですが、なんと25本ものゲームが搭載されています。テトリスもあります!
早速遊んでみましょう~
Azure Cloud ShellでEmacsコマンドを入力します。
Emacsが起動したら、Ctrl + xを押下し、tetrisを入力してEnterを押下します。
テトリスが起動しました!!
以下キーボード操作で遊べます。
操作 | キー |
---|---|
左移動 | ← |
右移動 | → |
回転 | ↑ |
高速落下 | Space |
Azure Cloud Shellでもテトリスが快適に遊べますね。
スコアも記録され、プレイ後に画面右側にスコア一覧が表示されます。
Emacsを終了するには、Ctrlキーを押下したまま、「xc」と入力します。
テトリスのスコアを永続化する
テトリスのスコアは~/.emacs.d/games/tetris-scores
に保管されます。
Azure Cloud Shellのストレージにも記載したエフェメラルセッションでAzure Cloud Shellを実行していた場合、Cloud Shellを開きなおすとスコアも消えてしまいます…
永続的なストレージを使ったセッションに設定を変更して、テトリスのスコアが永続化されるようにしてみましょう。
Azure Cloud Shellのユーザー設定をリセットして、ストレージを再設定します。
「設定」➡「ユーザー設定のリセット」をクリックします。
こちらの手順でストレージアカウントを作成・マウントします。
以下のようにマウントされた状態でAzure Cloud Shellが起動しました!
これでテトリスのスコアも永続化されます!
なお、2つのマウントポイントがあります。
- /usr/csuser/clouddrive
-
https://storageaccountname.file.core.windows.net/filesharename/
がマウントされます。 - デフォルトのサイズは6GBです。大きなファイルを保管したい場合は、ストレージアカウントのファイル共有のクォータを引き上げることで、こちらは拡張することが可能です。
- ファイル共有は、ホームディレクトリにもclouddriveという名前でシンボリックリンクが張られています。
-
- ホームディレクトリ
- ホームディレクトリ内容は、ディスクイメージとして保存・マウントされ、ストレージアカウントの
https://storageaccountname.file.core.windows.net/filesharename/.cloudconsole/acc_user.img
に格納されます。
このディスクイメージのサイズは5GBで拡張することはできません。
- ホームディレクトリ内容は、ディスクイメージとして保存・マウントされ、ストレージアカウントの
そのほかのゲーム
標準で搭載されているゲームは、ほかにも五目並べ(gomokou)やドットを食べて成長させるヘビゲーム(snake)もあり、アドオンでマインスイーパーなどのゲームも追加できます。
卓球ゲームpongで遊ぶ
卓球ゲームのpongも遊べます!
Emacsが起動したら、Ctrl + xを押下し、pongを入力してEnterを押下します。
パドルを上下に動かしてボールを跳ね返して遊びます。一人で左右のプレイヤー両方の操作を行います。
操作 | キー |
---|---|
左側のプレイヤー | ↑ ↓ |
左側のプレイヤー | ← → |
最後に
デフォルトのAzure Cloud Shell環境でテトリスなどのゲームを遊んでみました!
皆さんもリフレッシュしたいときに、Azure Cloud Shellでテトリスをしてみてはいかがでしょうか〜
Discussion