APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Azure】IntelliJからAzureFunctionsアプリを作成してデプロイする

はじめに

こんにちは。クラウド事業部の菅家です。
前回Application Insightsが便利だったという記事を書いたところ。

techblog.ap-com.co.jp

自分でログを出してみたく、まずはIntelliJにて関数アプリを作成してみようというところでチュートリアルを見つつ進めてみました。

learn.microsoft.com

進めながら悩んだ点などを含めて書いていこうと思います。

目次

やったこと

下準備

①リソースグループの作成

後でFunctionsと一緒に作る、でもいいんですが、Azure上でリソースグループを作成しておきます。


名前は「s_sugaya__function_test_02」とします。

②IntelliJのインストール

IDEです。Javaを書く際に使うとともにAzureプラグインがあるため、プロジェクトを簡単作成できます。

www.jetbrains.com

③IntelliJに「Azure Toolkit for IntelliJ」プラグインをインストール

設定>プラグイン>「Azure Toolkit」などで検索し、マーケットプレイスからプラグインをインストールします。

インストールできたらIntelliJを一先ず再起動。

公式記事の通りAzureにサインインします。
テナントにあるリソースが「Azure Explorer」上で表示されているか確認します。
リソースがうまく表示されない、などあれば再度サインイン。
learn.microsoft.com

プロジェクトの作成とデプロイ

①Azureプロジェクトの作成

ファイル>新規>プロジェクトから、

「Azure Functions」を選択すると、Functions用のプロジェクトを生成してくれます。
SDKはJava11とし「HTTPTrigger」としました。
色々なトリガーがありますが、HTTPTriggerのため、curlなどでAPIのように呼び出せるようです。

learn.microsoft.com

learn.microsoft.com

ビルドツールに関してはGradleを選択。これに関しては私の趣味です。

プロジェクト名を入力したら、「作成」ボタンをクリックしてプロジェクト作成します。
なんとサンプルコード付き。ありがたし。


このままデプロイしていきます。
ローカル実行には他インストール手順が必要となるので今回は割愛。

②Azure Functions リソースの作成

ここが設定が分からなくて結構詰まりました。
やり方としては、IntelliJの「Azure Explorer」から「<⚡>Function App」を右クリックし、メニューから「Create」をクリックします。


Nameに任意の名前を付けます。
Platformは今回はSDKに合わせてWindow-Java11。ランタイムとしては8,11,17が対応しているようです。

「More settings」にチェックを入れてさらに設定していきます。

リソースグループは先ほど前準備で作成したものを設定。

この時、デプロイできなかったりリソースグループが見つからない場合は、「Azure Explorer」で再度サインインしてみてください。
左下に警告表示も出ます。

AppServicePlanですがAzureのFunctions新規作成画面上だと、こんなかんじ。

IntelliJだと他にもプランを選べるので、Freeにしようかなと思ってIntelliJ側でFreeとしたところ、
Functionsではなく、AppServiceができてしまったのでご注意です。
Functionsを作るなら画面でも表示されたものを選択しましょう。

  • Flex Consumption plan
  • Premium plan
  • Dedicated plan
  • Container Apps
  • Consumption plan

learn.microsoft.com


Planは従量課金(Consumption)としました。

MonitorringタブにてApplication Insightsのリソースが選択できます。

諸々設定したら「OK」をクリック。

出来上がりました。



Azureの画面上にも表示されている。

③Azure Functionsへ関数をデプロイ

この状態ではまだ関数のデプロイは済んでいません。
FunctionsをAzureポータルから開いても内容は無し。

プロジェクトタブから、Azureを開き、「Deploy to Azure」をクリック。

その後メニューが再度開くので「Deploy to Azure Functions」をクリックします。

設定値は以下。

  • 名前:TestHttpTriggerと任意の名前を付けてみます。
  • module:現プロジェクトを選択。
  • Deploy to slot:今回は設定なし。
  • App Setting:こちらについても設定なし。おそらく環境変数設定となると予想。
  • hostJson:Functionsの動作設定のようですが、今回はデプロイ目的のため、ここも一先ずそのままとします。

いざ「実行」ボタンをクリック!
「Deployment succeed」の表示がコンソールに出たので成功の予感、ポータルから確認してみます。

良かった!いました!!
関数の名前は「HttpTriggerJava」なので、@FunctionNameで定義した名前が表示されるようです。
デプロイ時に設定した名前はいずこへ?と思ったら、「関数名をクリック>関数の URL を取得」にて、URL内におりました。
トリガーURLをブラウザに入れ、アクセスできるところまで!


おわりに

続いてですが、
・もう少しコードを読み込んでみる
  →サンプルコードベースでアノテーションなど作りを学ぶ
  →基本的な構造を学ぶ
  →利用方法を学ぶ
  →トリガーの深堀り
・Application Insightsとの連携
  →トリガーを使って実行、何かしらの実行結果を得る
  →Application Insightsに文字を表示する
こちらに手を付けていければと思います。

お知らせ

私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。
https://www.ap-com.co.jp/service/utilize-aws/

また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。 hrmos.co

本記事の投稿者: s-sugaya
AWSをメインにインフラ系のご支援を担当しています。