【Azure Functionsの使い方】Visual Studio とC#で関数を作成する
Azure Functionsというサービスをご存知でしょうか?これはいわゆるサーバーレス開発を行えるプログラムとなります。サーバーを常時起動させてプログラムを実行する必要がなく、実行したい時に実行することが可能です。このAzure Functionsは、実はVisual Studioでも開発可能ですので、ここではその作成方法などを確認していきます。
- システム
エンジニア - サーバーレスって最近よく聞きます。そんなに便利な機能なのでしょうか?
- プロジェクト
リーダー - とても便利な機能ですよ。サーバーを常時起動させておく必要がなく、トリガーが発生すれば動的にリソースが割り当てられます。それによって事前に登録しておいたプログラムが実行されるという機能です。
Azure Functionsのプロジェクトを作成する
Azure FunctionsはVisual Studioでも作成可能です。ただしプログラミング言語はC#での開発となります。今回はテストプロジェクト作成開発環境として、Community 2017を使用します。
- まず、新しいプロジェクトを追加します。「ファイル」タブ→「新規作成」→「プロジェクト」→「Cloud」を選択し、Azure Functionsを作成してください。
- 今回は、Httpトリガーを選択してデバッグ実行を行います。
これでローカル環境にAzure Functionsのプロジェクトが作成できました。次は実際にデバッグ実行をします。
Azure FunctionsでHello Worldを表示させる
プロジェクトが作成できたら、以下のソースが自動生成されます。これをいつものようにデバッグしてみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
namespace FunctionApp1
{
public static class Function1
{
[FunctionName("Function1")]
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.");
// parse query parameter
string name = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
.Value;
if (name == null)
{
// Get request body
dynamic data = await req.Content.ReadAsAsync<object>();
name = data?.name;
}
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}
}
}
|
デバッグ実行すると以下のコンソール画面が表示されます。
赤枠で囲んでいるURLをコピーして、各自ブラウザで実行してみましょう。Http triggerのテンプレート上、実行するにはnameパラメータが必要です。ここでは末尾にname=Worldを追加して実行します。
- システム
エンジニア - Azure FunctionsってAzureの環境がないとコーディングできないと思っていました。Visual Studioでも開発が行えるのなら、自分でもデバッグして確認できそうです。まずは試してみます!
- プロジェクト
リーダー - もちろんAzureポータルからでも作成できますよ。自分で試してみるのがスキルアップの近道です。Azure Functionsプロジェクトを作成してみて、サーバーレスを体験してみるのも良いでしょう。
サーバーレス環境はますます需要が高まる予感
Azure Functionsをはじめ、主要なクラウドサービスでは、サーバーレスで実行可能なプログラムを作成することが多くなってきました。クラウドサービスもこれから需要が増えていくでしょう。Azure Functionsのような、サーバーレスで実行可能なコーディングを行う技術は、これから多くの場面で求められるスキルのひとつだといえます。学習する機会を設けることも必要になってくるでしょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Azure新着案件New Job
-
クラウドサービスを利用したインフラ基盤構築/Azure/東京都大田区/【WEB面談可】
月給60万~70万円東京都大田区(大森駅) -
クラウドサービスを利用したインフラ基盤の運用保守/Azure/東京都大田区/【WEB面談可】
月給50万~60万円東京都大田区(大森駅) -
決済システム保守開発/東京都渋谷区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】
月給45万~50万円東京都渋谷区(渋谷駅) -
決済システム保守開発/東京都渋谷区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】
月給31万~34万円東京都渋谷区(渋谷駅) -
資格試験用システム開発/Azure/東京都渋谷区/【WEB面談可】/テレワーク
月給45万~60万円東京都渋谷区(渋谷駅) -
Azure開発サポート/神奈川県横浜市/【WEB面談可】/テレワーク
月給33万~48万円神奈川県横浜市(横浜駅)