AWS CloudWatch Logs で選択可能なOSについて

以前は debian にインストールできなかった、 AWS cloudlogs のインストール可能なOSが増えていました。
regionの選択肢も増えて、アジアパシフィック (東京) ap-northeast-1 も選択できるようになっていました。

もともとは下記方法でawslogsを使おうとしてました。
いつもは、debianを使うのでubuntuにするしかないかなと思ってました。

dev.classmethod.jp

setupスクリプト

https://s3.amazonaws.com/aws-cloudwatch/downloads/awslogs-agent-setup-v1.0.py

インストール可能OS

https://hub.docker.com/r/takipone/docker-awslogs/~/dockerfile/

dockerfileでは

ADD awslogs.conf.dummy ./awslogs.conf

と書いてあって、dummyって何だろうと思ったけど、githubのRepositoryを見たら、ファイルがありました。

そして、こちらに記載されているものがインストール可能OSと出力先のリージョンが増えたものです。

docs.aws.amazon.com

setupスクリプト

https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py

インストール可能OS

せっかくなので、githubにDockerfileをpushして、dockerhubでビルドしてみました。

github.com

https://hub.docker.com/r/naughtldy/debian-awslogs/

.NET Core でコマンドラインからWebアプリのプロジェクトを作成する

Webアプリのテンプレートからプロジェクトを作成する。

$ dotnet new -t Web

$ mkdir hoge
$ cd hoge
$ dotnet new -t Web
$ ls -al
.bowerrc
Controllers
Program.cs
Startup.cs
Views
appsettings.json
bower.json
bundleconfig.json
hoge.csproj
web.config
wwwroot

ディレクトリ名が .csproj 部分の名前になるようです。

余談

$ mkdir ほげ
$ cd ほげ
$ dotnet new -t Web

したところ、 ほげ.csproj が作成されました。

.NET Core の開発環境 - その2

以前に Macで使える .NET Core 用IDEをいくつか調べてました。

naughtldy.hatenablog.jp

そのときは、 VisualStudio と Rider EAP があるんだな程度の調べ方で済ませていたのですが、両方でプロジェクトを作成して違いがわかりました。

VisualStudio for Mac PREVIEW

.NET Core のプロジェクトを作成すると、パッケージ管理は csproj になっている。

※ 記事作成時点では preview 3 で動作します。

Rider EAP

.NET Core のプロジェクトを作成すると、パッケージ管理は package.json になっている。
preview2 しかサポートされていない。
つまり、 project.json による管理方法しかできない。

※ 記事作成時点では preview 2 で動作します。
※ 最新は .csproj で管理するようになっているので微妙。

package.json と .csproj

.NET Core では、 preview3 で package.json から .csproj に変わりました。 今後の事を考えると、VisualStudioの方でプロジェクトを作っていた方がよさそうかなと思いました。

その他

VisualStudio for Mac でプロジェクトを作成してみましたが、ビルド時にエラーになりました。
.NET Core のバージョンを確認してみます。

$ dotnet --info
.NET Command Line Tools (1.0.0-preview2-1-003177)

Product Information:
 Version:            1.0.0-preview2-1-003177
 Commit SHA-1 hash:  a2df9c2576

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.11
 OS Platform: Darwin
 RID:         osx.10.11-x64

.NET Core のインストールされているSDKを見てみます。
ちなみに、 .NET Core 1.1 は 1.0.0-preview2-1 です。

$ ls -al /usr/local/share/dotnet/sdk
total 0
drwxr-xr-x   4 root  wheel   136  2 21 21:20 .
drwxr-xr-x   8 root  wheel   272  2 21 21:21 ..
drwxr-xr-x  50 root  wheel  1700 10 18 06:04 1.0.0-preview2-003148
drwxr-xr-x  51 root  wheel  1734  2 21 21:21 1.0.0-preview2-1-003177

csprojは preview3 からで、preview4を入れてみたところ、VisualStudio for Mac ではビルドが上手くいかなかったため、githubから preview3sdkをダウンロードしてインストールします。

github.com

$ dotnet --info
.NET Command Line Tools (1.0.0-preview3-004056)

Product Information:
 Version:            1.0.0-preview3-004056
 Commit SHA-1 hash:  ccc4968bc3

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.11
 OS Platform: Darwin
 RID:         osx.10.11-x64

インストールして、preview3 に切り替わりました。
VisualStudio for Mac でリストア/ビルドができるようになりました。

.NET Core のバージョンを下げる

使用したいバージョンより上のバージョンが入っていた場合はSDKを削除する

$ sudo rm -rf /usr/local/share/dotnet/sdk/1.0.0-rc4-004771

削除後 dotnet --info を実行すると /usr/local/share/dotnet/sdk にある最も新しいバージョンが選択されます。

参考資料

qiita.com

www.kekyo.net

.NET Coreのバージョンを戻したい!(Mac) - ryuichi111stdの技術日記

Webpack2ではextensionsに空文字を指定できない

npm install webpack で Webpack2 がインストールされるようになっていたので、試して見たところエラーが出たのでメモ。

エラー

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.resolve.enforceExtension should be a boolean.

解決策

extensions にemptyな '' を指定してはいけない。

ソースコード

エラー時のソースコード(一部抜粋)

var webpack_config = {
  resolve: {
    extensions: ['', '.webpack.js', '.ts', '.tsx', '.js']
  }
}

修正後ソースコード

var webpack_config = {
  resolve: {
    extensions: ['', '.webpack.js', '.ts', '.tsx', '.js']
  }
}

参考URL

okamuuu.hatenablog.com

.NET Core でMySQLに接続する

.NET Core にてMySQLに接続したくてその方法を調べてみた。

参考にした記事の手順でできるけど、1点か注意が必要な部分があった。

注意点

portが 3305 になっている

参考

HowTo: Starting with MySQL EF Core provider and Connector/Net 7.0.4 | InsideMySQL.com

.NET Core開発で手動でのnuget追加方法

.NET Core を使った開発でVisualStudioを使えない場合Nugetを調べるのが大変だと思います。

MacだとRiderがあるからNugetの参照も上手くいくと思ってたんですが、自分の環境だと、RiderでNugetを検索できるけど参照追加しようとすると失敗してしまうという状態でした。 GUIからできないなら自力で書くしかないということで調べてみると自分が探していた情報が出てきました。

  1. .NET Core で使いたいClassをココで調べる。
    docs.microsoft.com
  2. 1.で調べた Assembly を元にNugetを検索する。
    NuGet Gallery | Home
  3. csproj にパッケージ名とバージョンを追記する

※ 詳細は下記参考ページに載っています。

参考

ryuichi111std.hatenablog.com

VisualStudio2015Enterpriseでパッケージが読み込まれない

Visual Studio 2015 Enterprise をインストールして、プロジェクトを作成した時に下記のエラーが表示されました。

'XamarinShellPackage' パッケージは正しく読み込まれませんでした。

f:id:naught00:20170215200116p:plain

参考のURLを見てみると、 http://xvs.xamarin.com/Xamarin.VisualStudio_3.11.524.msi をインストールすると解決すると書いてあったので試してみたところ無事解決しました。

参考

The 'XamarinShellPackage' did not load correctly.