koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

Tips

OpenCVSharpで動画を処理した時の失敗メモ

先日から作っているダイスボットでは、Raspberry Pi上のAzure IoT Edgeデバイスで動作を処理したかった。 この際、OpenCVで処理すればどうにでもなるだろう+できれば全部C#(.NET)でプログラムを書きたい、と言った理由でOpenCVSharp*1を使用した。 ものは…

MackerelのURL外形監視でAzure App ServiceをAlways on

Microsoft AzureにはApp Serviceという便利なPaaSがあって、趣味でWebアプリケーションを作ったらとりあえずそのFreeプランでホスティングしている。 App ServiceのFreeなど無料や低料金なプランは、一定時間アクセスがないと動作が停止する。アクセスがあっ…

Amazon EFSへのリソース配置をAWS CLI + 踏み台サーバでやってみる

先にAWS Lambdaの関数実行時にEFSをマウントしてみた。その時にはファイルの出力先として使ってみたのだけれど、入力ファイルの配置先としても使えると思う。Lambdaは何かと容量制限があるが、EFSなら容量制限とは無縁だ。Lambda + EFSの記事でも機械学習結…

AWS Lambda上のChromeでHTMLをレンダリングしてS3やEFSに保存した

Twitterのタイムラインを動画にしたいと思ったのでしてみた - koudenpaのブログ からの流れでHTMLをレンダリングして画像を取得することをいくらか試している。 先には.NET Framework、Windowsのローカルマシンで試したので、次はクラウドでと考えてAzure Fu…

Azure App ServiceのFreeやSharedプランでApp Service build serviceのデプロイに失敗した時にしていること

Microsoft AzureのPaaS、Azure App Serviceが好きでよく使っている。 アプリケーションのデプロイにはお手軽なApp Service build serviceを、使うことが多い。簡単な設定をするだけでリポジトリにPushした内容をビルド、デプロイしてくれてとても便利だ。 こ…

Blazor WebAssembly のSSRを試した

Blazor的にはSSRではなくプリレンダリング(Prerendering)と呼ぶらしいけれど、やりたいこと的にはサーバサイドレンダリングの方が通りがいいのではないかと思う。 どうすれば Blazor WebAssembly をプリレンダリングできるのか プリレンダリングするには前…

ページネート? そんなものいいからとりあえず全部よこせよ! Azure SDK for .NET 編

先日AzureのAPIを.NETのSDKから呼び出したのだけれど、ページネートを忘れていてAPIの結果が欠落した。 Fix pagenate by 7474 · Pull Request #2 · 7474/PostAzureCostToMackerelFunction · GitHub でFixした(つもり)。 ページネートという概念は多量のデ…

転載: Azureを個人で(あんまりお金を払わずに)使うには?

これは2020-03-11に株式会社はてな社内の共有スペースに書かれた内容の転載です。 昼会日誌の後東京地下(id:koudenpa は東京オフィスの地下で仕事をしている)でAzureを個人で(あんまりお金を払わずに)使うには? のような雑談をしていた。 結論から言う…

Redashの初期設定が変わっていて???状態だった話

追記:変わっていたのではなく、参照するAMIがカスタマイズされているものなだけだった。 https://redash.io/help/open-source/setup の手順を見て、 https://docs.bitnami.com/aws/faq/get-started/find-credentials/ のAMIを動かしている。アホか? 理由が…

IaCしていないAzure Rsource GroupのARMテンプレートの履歴をBitbucket Pipelinesで取る

履歴を取りたいリソースグループにデプロイしているアプリケーションはBitbucketでリポジトリ管理していることに気が付いてしまった。

IaCしていないAzure Rsource GroupのARMテンプレートの履歴をGitHub Actionsで取る

エクスポートしたテンプレートの履歴を取っておけば最低限変更を見られるようになるのでは? と思ったので試してみた。

GitHub Actions で .NET Core の NuGet パッケージを Push した

以前 NuGet パッケージを作った時にはローカルマシンから nuget.org に Push したのだけれど、正直面倒くさいのでリポジトリにPushしたら勝手にパッケージがプッシュされて欲しい。 最近 GitHub で CIサービス? の Actions が使えるようになり、GitHub Pack…

Azure Functions (.NET Core)の DI 事情

Azure Functions に .NET Core の関数? をデプロイするにあたって、DIしたくてしたので周辺事情を書いておく。 必要な情報は案内されているので、それに従って処理すればDIできる。 docs.microsoft.com しかし、DI対象の設定をどう構成するのか? が書かれ…

ASP.NET Core で System.Random を使う

ASP.NET Core (C#)で System.Random を使った際の覚書記事です。 アプリケーションを作っていると乱数を使いたくなる場面は多々ある。各言語では概ね疑似乱数の実装が提供されている。 .NET Core でも System.Random クラスが提供されている。 疑似乱数の…

リソース名を付ける時の名前長制限への対応

最近公私でいくつかリソース名の長さ制限に抵触する例が発生して面白かった。 ここでいうリソース名は、自分で長さの制御ができない接続先システムで一意にしたい名前だ。 一意な名前の作り方は幾つもあるけれど、以下のような場合が多いだろうか。 元々一意…

Bitbucket Pipelines の Pipes で Azure Blob Storage の静的Webサイトにファイルをコピーする

昨今、静的なWebサイトのホスティングは簡便化が著しく、GitHub PagesのようにGitリポジトリがその機能を提供していたり、クラウドサービスならオブジェクトストレージ+CDNで構成すると安価かつ高速なファイル配信を行えたりする。 Microsoft Azureでこのオ…

Nginx で /.well-known 配下をBasic認証不要にする

開発環境などで雑にBasic認証をかけたい場面がある。そうした環境で特定のパスは認証したくない場合がある。例えば、Let's Encryptでの証明書発行・更新のドメイン検証のリクエストだ。 Nginxの場合、認証の構成によるけれど、Basic認証のみを行っているよう…

ASP.NET Core の ConfigurationBuilder の構成順に気を付ける

ASP.NET Core では ConfigurationBuilder を使用してアプリケーションの設定を構成する。 ただ、あまりこれを自分で呼び出すことはなく、大体はデフォルト構成で済んでしまう。 その場合はいい感じに構成される。 特別な事情があって自分で構成する場合は、…

Swagger で広がるような気がする Mackerel の世界

元々はよい感じに試行を行って『Swagger で広がる Mackerel の世界』のような景気の良いタイトルにしようと思ったのですが、なかなか辛みもあったので弱気なタイトルになりました。本記事は Mackerel Advent Calendar 2018 の4日目の記事です。 さて、Macker…

閉じたアラートも取れるようになったMackerelのAPIで勤怠を得んと欲す

月末ですね。 Mackerelアドベントカレンダーが明日から始まりますが、この試行は月末に価値があるので自称0日目の記事として書きます。 さて、みなさん、勤怠の記録は毎日つけていますか? 自分はまぁ、言わぬが華です。 Google MapのLogで毎日何時頃にオフ…

Entity Framework Core 2.0 でASP.NET Core起動時にマイグレーションする

こんな感じの Program.cs にすることでとりあえず実現できた。 ただ、この手法はシングルインスタンスのアプリケーションでの適用に限定しておいた方が良さそうだ。 class Program { public static void Main(string[] args) { var host = BuildWebHost(args…

Entity Framework Core 2.0 で CreatedAt UpdatedAt

自分はORMではS2JDBCの洗礼を浴びていて、静的な型がついているEntityをRDBにMappingしてくれるORMが好きだ。 最近ではEntity Framework Coreが良くて、ちょっと前から使っているシステムがある。 唐突にそれでやっている工夫を書きたくなったので書く。 タ…

OpenCvSharp を Azure Functions で使用する際のDLLロード

あるいは、何かしらのNugetパッケージが他の依存DLLをロードや、単に関数内でローカルファイルを読み込みたい場合の注意点をメモする。

Bitbucket Pipelines で Ansible を Play する

Docker Hub に Ansible 実行用のコンテナが公開されているので bitbucket-pipelines.yml で image にそれを指定して、後はプレイすればよい様子。 image: ansible/centos7-ansible pipelines: default: - step: caches: - pip script: - pip install ansible…

ConoHaのVPSインスタンスが破損した時に思ったこと

諸般の事情でConoHaのVPSで非冗長構成でWebアプリケーションをホスティングしている。 先日、ConoHaのVPSでホスト障害が発生して、そのWebアプリケーションのインスタンスが該当した。 障害は往々にして連鎖するもので、ファイルシステムが破損してインスタ…

.NET Coreを弄っているとよくあること

使おうと思ったライブラリが .NET Framework 向けのみで .NET Core に対応していない。 これにつきる。気を付けましょう。例えば…… 依存関係はないといったな? それは嘘だ。 パッケージ 'WindowsAzure.ServiceBus 4.2.1-preview' はプロジェクトのターゲッ…

Bitbucket Pipelines で PHP のプロジェクトを Deployer する

Bitbucket Pipelines で PHP の Deployer 設定した際のメモです。

さくらのクラウド オブジェクトストレージにAWS SDK for .NETで接続する

ときに、素直にはいかなかったのでメモを残しておく。 さくらのクラウド オブジェクトストレージのバージョンは記事の日時現在、 SDKのバージョンは 3.3.5.3 だった。 “AWSSDK.S3”: “3.3.5.3” 概ね以下のような記述で接続できるクライアントを構成できた。 e…

KUSANAGI(というかWordPress)をGoogleDriveにバックアップする

人として、VPSの外にバックアップを取りたかったので取った。 別にどこにとっても良かったのだけれど、なんとなくGoogleDriveにした。 ぐぐったらLinuxで便利に使えるクライアントが出てきた。 takuya-1st.hatenablog.jp インストールと認証は済ませておく。…

UTCな時刻をDateTimeKind.UnspecifiedなDateTimeにしてしまうとどんどんずれる

.NET での時刻のシリアライズで失敗したという話。 背景 .NET の DateTime 構造体 (System) は、時刻とは別に、その値が現地時刻なのか、世界協定時刻(UTC)なのか、その辺不明(Unspecified)なのかを持っている。 その辺を明示しないでDateTime構造体を構…