サーバーレス、流行ってますね。
なんかインフラ系のひとから「ぜひ使って。パッチ充てもういや」って言われたので、きっとすごい便利なんだと思われます。
とはいえ、クラウドアカウント持ってないんでローカルで雰囲気だけでも感じてみます。
Azure Functionsです。
開発環境
Visual Studio 2017 + 「Azureの開発」
Azure Functions Core (CLI) ツール
「Azureの開発」はVS2017のメニューで「ツール」→「ツールと機能を取得」→「Azureの開発」
「Azure Functions Core (CLI) ツール」は初回デバッグ時にVSからインストールを要求されるので、指示に従ってインストール。
動かしてみる
プロジェクトの作成
VSで「ファイル」→「新規作成」→「プロジェクト」→「VisualC#」→「Cloud」→「Azure Functions」
名前は「FunctionApp1」にしました。
接続先設定
local.settings.jsonを以下のように書き換え。こうするとAzure Functions Core (CLI) ツールが提供するローカルのFunction環境に接続するらしい。
OreOreQueueStorageはあとで使います。
Function追加
Queueになにか入ったら実行されるFunctionを作ってみます。
「ソリューションエクスプローラー」のプロジェクトを右クリックで「追加」→「新しい項目」→「Azure関数」
「Queue trigger」を選んで、Connectionをlocal.settings.jsonに設定した変数名”OreOreQueueStorage”に、Pathは任意の名前にします。ここでは”watashino-items”にしました。
OKでFunction1.csが作成されます。
Queueの作成
Azure Storage Explorerを起動して、
(Local and Attached)-Storage Accounts-(Development)-Queue-右クリック-Create Queue
“watashino-items”でQueueを作成します。
実行
ここで実行(F5)してみます。Azure Functions Core (CLI) ツールが無い場合はのインストールを要求されます。
Functionsのエミュ環境が立ち上がってきます。
先ほど作ったキューに適当な値を入れると
若干タイムラグがありつつ、エミュ環境でFunctionが実行されます。
で
実際のアプリに適用するには(理解度的に)まだまだですが、なんとなく使えるような気がします。
追記
HTTPトリガーを別サーバ(別ポート)で作って実行とすると
|
|
みたいなエラーが出たりします。CORSの設定が必要です。
|
|
をlocal.settings.jsonに追加して解決