はじめに
こんにちは。クラウド事業部の菅家です。
前回Application Insightsが便利だったという記事を書いたところ。
自分でログを出してみたく、まずはIntelliJにて関数アプリを作成してみようというところでチュートリアルを見つつ進めてみました。
進めながら悩んだ点などを含めて書いていこうと思います。
目次
やったこと
下準備
①リソースグループの作成
後でFunctionsと一緒に作る、でもいいんですが、Azure上でリソースグループを作成しておきます。
名前は「s_sugaya__function_test_02」とします。
②IntelliJのインストール
IDEです。Javaを書く際に使うとともにAzureプラグインがあるため、プロジェクトを簡単作成できます。
③IntelliJに「Azure Toolkit for IntelliJ」プラグインをインストール
設定>プラグイン>「Azure Toolkit」などで検索し、マーケットプレイスからプラグインをインストールします。
インストールできたらIntelliJを一先ず再起動。
公式記事の通りAzureにサインインします。
テナントにあるリソースが「Azure Explorer」上で表示されているか確認します。
リソースがうまく表示されない、などあれば再度サインイン。
learn.microsoft.com
プロジェクトの作成とデプロイ
①Azureプロジェクトの作成
ファイル>新規>プロジェクトから、
「Azure Functions」を選択すると、Functions用のプロジェクトを生成してくれます。
SDKはJava11とし「HTTPTrigger」としました。
色々なトリガーがありますが、HTTPTriggerのため、curlなどでAPIのように呼び出せるようです。
ビルドツールに関しては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
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