AWS
C#
cloud9

Amazon Cloud9 で .NET Core を動かしてみた

Amazon Cloud9 で .NET Core を動かしてみた

Cloud9 とは

Cloud9 とは Webブラウザだけで使用できる Web IDE というやつです。2016年に Amazon に買収され、AWS Cloud9 として AWS に統合されました。
個人的な感想としてはちょっとした Lambda や CLIツールなどを開発するのには良いかもしれません。あと、コードやターミナルの共有がリッチなのでチャットしながらコードレビューとかの使いようもあるかも。
不満な所は 対応言語 の表にあるように、実行からデバッグまでフルサポートされている言語は C++, Go, Node.js, PHP, Python のみというのと、せっかく Lambda と相性抜群なのに Lambda連携が同リージョンしかサポートされておらず、日本リージョンとは連携できない所とかですね。

Cloud9環境に .NET Core をインストールする

Cloud9 は実際の所 Amazon Linux の EC2インスタンスにフロントエンドとして乗っかっている形で、普通にターミナルからインストールできると思いましたが・・・
ここ に載っている方法だと途中でエラーが出ます。

$ sudo yum install dotnet-sdk-2.1.105
...
Error: Package: dotnet-runtime-2.0.7-2.0.7-1.x86_64 (packages-microsoft-com-prod)
           Requires: openssl-libs
Error: Package: dotnet-runtime-deps-2.1.0-preview2-26406-04-2.1.0_preview2_26406_04-1.x86_64 (packages-microsoft-com-prod)

https://github.com/dotnet/core/issues/930

AMI はサポート対象に入っていないらしい・・・
tar.gz を直接落としてきて入れると大丈夫らしいので結局インストール方法は以下のような手順になります。

$ sudo yum install libunwind libicu libcurl

$ wget https://download.microsoft.com/download/2/E/C/2EC018A0-A0FC-40A2-849D-AA692F68349E/dotnet-sdk-2.1.105-linux-x64.tar.gz
$ mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-2.1.105-linux-x64.tar.gz -C $HOME/dotnet

ターミナルで ~/dotnet/dotnet -v とやってバージョン情報が出ればOKです。

Runner を作成する

new-runner.png

一度適当なプログラムを書いて Run を実行すると実行ペインが出現します。
実行ペインの Runner を押すと有効な Runner の一覧と作成・編集のメニューが出るので、"New Runner" を選択します。

{
  "cmd": [
    "dotnet",
    "run",
    "$file_path",
    "$args"
  ],
  "info": "Started $project_path$file_name",
  "env": {
    "PATH": "$PATH:~/dotnet"
  },
  "selector": "source.cs"
}

こんな感じで Runner を作成し、CSharp.runとでも名前を付けて保存しましょう。

試してみる

コンソールを開いて C# のコンソールアプリをテンプレートから作成します。

$ ~/dotnet/dotnet new console

Program.cs を開き、Run ボタンを押します。

cs-run.png

動きました。これでブラウザしか使えない環境でもC#のプログラムが書き放題ですね!(そもそもAzureでAppEditor使えよとかいうのはナシでお願いします)