LoginSignup
1

More than 5 years have passed since last update.

VisualStudioから発行したAzureFunctionsを無効化する

Last updated at Posted at 2017-12-12

はじめに

これは 日本情報クリエイト Engineer's Advent Calendar 2017 の3日目の記事です。
Merry Christmas!🎄

Azure Functions

サーバレスアーキテクチャはお手軽です。
インフラ的な部分は意識せずに、ただただ処理を書くこと集中できます。
Microsoft Azure Functions も、そんなサーバレスなソリューションです。
小さな処理(関数)をさくさくっとクラウド上に展開できます。

Visual Studio を使用した Azure Functions の開発

ブラウザから直接 C# を記述し、その場でテスト、発行までできてしまいます。
お遊び程度のプログラミングなら、ブラウザ上でちょこちょこっと書いても良いのですが、
Visual Studio の甘い蜜を知っている身としては、
やはりインテリセンスや参照ジャンプのようなIDEを活かした生産性の高い開発がしたくなります。

そして、そんなことができないはずもなく。
さすが、Microsoft Azure のソリューションです。
Visual Studio 2017 を使用した Azure Functions の開発が可能です。

Azure Functions Tools for Visual Studio
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-develop-vs

ローカルでプログラムを書き…

vs.png

発行すれば…

vs2.png

あっという間にデプロイ完了!

azure.png

…と、ここまでが前提。

つまづいた!

とりあえず、発行したはいいものの、まだ開発中なので一旦関数を無効にしたいです。

(^^) 。oO たしか、ブラウザ上で「有効/無効」の管理ができたはず…
azure3.png ←こんなボタンが出てくると信じてた

あれっっ!?読み取り専用になっていて「有効/無効」が触れない!
azure2.png

関数を無効にするために、いちいちローカルでソースをコメントアウト→発行なんてしてられません。

解決法

よくよく見てみると、次のようなアラート表示がありました。

生成された function.json を公開しているため、アプリは現在読み取り専用モードになっています。function.json に加えられた変更は、Functions ランタイムでは受け入れられません。

ふむふむ。
ということで、作った関数に Disable 属性を付与して "true" を指定します。
これだけ。

[Disable("true")] // 開発中なので無効にしておく
[FunctionName("Greet")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
    log.Info("C# HTTP trigger function processed a request.");

   // …後略
}

そして、発行すると、ちゃんと(無効)になりました!
azure4.png

おわりに

「取り急ぎやってみた」程度の内容で申し訳ないです。
たとえば、こんなことできないのかな…

  • function.json をローカルで持てないのか
  • 読み取り専用を外し、発行/pullしながら、ローカルとクラウド両方で開発できないか

もっと Azure Functions の開発が楽になるように今後も試行錯誤してみたいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1