ここでは、GeneXus アプリケーションを
Azure Functions にデプロイする方法について説明します。
デプロイを実行するマシンに、要件となるものをインストールします。要件は
Azure CLI のみです。
クラウドでの基本的な手順は次のとおりです:
1.Azure にリソースを作成します。「
Azure Function App の作成方法」を参照してください。
2.認証を行うには、
サービスプリンシパルを設定します。
GeneXus での基本的な手順は次のとおりです:
1.Deployment Unit オブジェクトを作成し、デプロイするオブジェクトを選択します。
2. [
アプリケーションをデプロイ ] を使用して、ターゲット「Microsoft Azure Functions」を選択します。
アプリケーションのバックエンドサービスをデプロイするには、
ターゲット「Microsoft Azure serverless (backend services)」を選択します。この場合、関数は HTTP をトリガーとする関数としてデプロイされます。
3.プロパティのグリッドでプロパティを設定します。
4. [ デプロイ ] ボタンをクリックして Azure へデプロイします。
Azure の関数にはトリガータイプがあります (Deployment Unit の
[ Trigger Type ] プロパティ)。
関数のトリガータイプに応じてデプロイ時の検討事項が異なります。
これらの検討事項については、HTTP 以外のトリガーを持つ関数と、HTTP トリガーを持つ関数を分けて考えることができます。
HTTP トリガーを持つものを除くすべての関数については、アプリケーションをデプロイするにあたって、以下の点を検討します。
これはタイマーでトリガーされる関数の例です:
「
HTTP トリガーの Azure Functions」を参照してください。
最初に、既存の Function App に関数を公開するとき、関数が更新されることを考慮します。
関数によっては、一部の設定をクラウドで変更できるようにすることが望まれます。こうした設定はデプロイ時に設定され、指定する名前と値で
アプリケーション設定をクラウドに作成するようデプロイエンジンを設定できます。
たとえば、タイマー関数の場合、cron の時刻やアプリケーション設定 (指定する名前と値でクラウドに作成) を指定できます。
最後のオプションについては、すべての変更をクラウドで行うことができるメリットがあります (変更のための再デプロイは不要です)。
キューや Service Bus など、接続データをアプリケーション設定として定義するその他の関数タイプも同様です。
Function App 内のすべての関数の動作をグローバルに設定できます。そのためには
host.json ファイルを使用します。たとえば、アプリケーション、健全性モニターなどのトレースレベルをこのファイルで設定できます。
Azure Functions には既定のタイムアウトがありますが、これも host.json ファイルで変更できます。
重要: このファイルは GeneXus ユーザーが管理する必要があります。
[ アプリケーションをデプロイ ] では、基本設定のファイルがアップロードされます。別の設定を使用する場合は、ファイルを編集して Deployment Unit に追加できます (「
追加のファイルとディレクトリーのデプロイ」を参照)。
トレース情報を生成するための
host.json ファイルの例:
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"default": "Trace",
"Host.Results": "Trace",
"Function": "Trace",
"Host.Aggregator": "Trace"
},
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
}
}
}
}
Function App が Image、Audio、Video、BlobFile のデータタイプを使用する場合は、
[ Storage Provider ] プロパティを設定する必要があります。マルチメディアはすべて Microsoft Azure などの外部 URL から提供する必要があります。
同じ理由で、コンテンツ提供にファイルシステムを使用すること、つまりファイルに対する読み取り/書き込みアクセスはサポートされていません (Blob データタイプ、Excel、PDF レポートなど)。
GAM を使用したソリューションについては、「Azure サーバーレスアーキテクチャで GAM を使用する方法」を参照してください。