GeneXus IDE のメインメニューで
[ ビルド ] > [ アプリケーションをデプロイ ] を選択すると、 [
アプリケーションをデプロイ ] にアクセスできます。ここには次の機能があります:
- ローカルへのデプロイ: Web アプリケーションをパッケージ化できます。つまり、Web オブジェクトとサービスをパッケージ化し、対応するクラス、ライブラリ、リソースを格納した .zip、.war、.ear などにします。これを Tomcat、WebSphere、JBoss、IIS、またはお好みの IaaS やホスティングプロバイダーの Web サーバーにインストールすることになります。
- Docker コンテナへのデプロイ: アプリケーションを格納した Docker イメージをビルドできます。
- クラウドへのデプロイ: 該当するパッケージを最も一般的な Platform as a Service (PaaS) クラウドプロバイダー (つまり、AWS Elastic Beanstalk、Google App Engine、IBM Bluemix、Microsoft Azure、SAP Cloud Platform) またはサーバーレスプラットフォーム (つまり、AWS Lambda および API Gateway) にデプロイできます。
- バッチプロセスをパッケージ化できます。つまり、コマンド ライン プロシージャーをパッケージ化し、対応するクラス、ライブラリ、リソースを格納した .zip または .jar ファイルを取得します。コマンド ライン プロシージャーは、(AWS Lambda 関数として) サーバーレスプラットフォームにデプロイすることもできます。
[ アプリケーションをデプロイ ] は、拡張やカスタマイズが可能です。
こちらからスクリプトを入手できます。
UI から利用できるオプションは、
アプリケーションをデプロイする MSBuild タスクから利用できるすべてのオプションのごく一部です。
基本操作については、次の手順に沿って進めることができます。プラットフォームやクラウドに固有のその他の注意事項については、関連するドキュメントで取り上げられています。
[ 追加 ] / [ 消去 ] ボタンを使用して、オブジェクトを追加または削除できます。
メインオブジェクトを選択するだけで、呼び出されるすべてのオブジェクトが自動的に追加されます (リストには表示されません)。
Deployment Unit オブジェクトで選択可能なオブジェクトのみ選択できます。
デプロイ対象としてネイティブ モバイルのメイン オブジェクトを 1 つ以上選択した場合、デプロイにはアプリケーションに必要なすべてのサーバー側コンポーネントが含まれます。これには、必要なすべての REST サービスのほか、 [
App Update ] プロパティや [
Enable KBN ] プロパティに指定されているアプリケーション メタデータ ファイルも含まれます。Android または Apple のアプリケーションバイナリ (.apk または .ipa ファイル) はデプロイされず、アプリケーションストアとも接続されません。
注:
セキュリティを強化する場合は、
[ Application Encryption Key ] プロパティを変更します。
[ Enable Integrated Security ] プロパティが True に設定されている場合は、
[ Include GAM Backend ] プロパティが表示されます。 [ Include GAM Backend ] プロパティが True に設定されている場合は、GAM Backend のファイルがパッケージに含まれます。それ以外の場合、GAM Backend のファイルはパッケージに含まれません。
選択内容を
Deployment Unit オブジェクトに保存することも、既存の Deployment Unit を選択することもできます。Deployment Unit を選択しなかった場合は、デプロイ対象として選択したオブジェクトを含む既定の Deployment Unit が作成されます。
Web オブジェクトまたはスマート デバイス オブジェクトをデプロイ対象として選択した場合は、 [ デプロイ ] ボタンをクリックすると、必要なバイナリとそのリソースを含む .war パッケージが作成され、次のものをサポートする Web アプリケーションサーバーにデプロイできるようになります:
- Generic Servlet 3.0 (Apache Tomcat 7、WAS 8.x)
- Generic Servlet 3.1
- Generic Servlet 5.0 (Tomcat 10)
- JBoss (Enterprise Java Beans)
- Tomcat 8.x
- Tomcat 10.x (URL Rewrite ルールのサポートを追加)
- WebSphere (Enterprise Java Beans)
注
- Tomcat 8.x は Generic Servlet 3.1 を使用します。アプリケーションでファイルのダウンロードをサポートしている場合は、 [ ターゲット ] で [ Tomcat 8.x ] を選択してください。参考情報: SAC #41714、Apache Tomcat Versions
- JBoss の場合、再起動すると war ファイルが削除および再デプロイされるため、デプロイしたアプリケーションのファイルに何らかの変更を加えていた場合は変更が失われます (新しい変更で .war ファイルを更新するか、JBoss を再構成しない限り、war ファイルは再デプロイされます)。
[ ターゲット ] で [ ローカル ] を選択し、利用可能なアプリケーションサーバーの 1 つをリストから選択し、 [ デプロイ ] をクリックします。
Web オブジェクトまたはスマート デバイス オブジェクトをデプロイ対象として選択した場合は、 [ デプロイ ] ボタンをクリックすると、必要なバイナリとリソースを含む .zip パッケージが作成され、次の Web アプリケーションサーバーにデプロイできるようになります:
[ ターゲット ] で [ ローカル ] を選択し、利用可能なアプリケーションサーバーの 1 つをリストから選択し、 [ デプロイ ] をクリックします。
[ ターゲット ] で [ Docker Image ] を選択すると、GeneXus はアプリケーションを含む Docker イメージを作成し、デプロイできるようにします。詳細については、「
Docker にアプリケーションをデプロイする方法」を参照してください。
Web オブジェクトまたはスマート デバイス オブジェクトをデプロイ対象として選択し、 [ ターゲット ] で [ ローカル ] と [ Docker Image ] 以外を選択した場合は、 [ デプロイ ] ボタンをクリックすると、必要なバイナリとリソースを含むパッケージが作成され、クラウドにデプロイできるようになります。最終的に、そのパッケージは、デプロイのプロパティで設定した資格情報とオプションを使用してクラウドにデプロイされます。
注意: 単にパッケージを作成する場合は、 [ パッケージのみ ] を選択しますします。
.NET に利用可能なクラウドターゲット: AWS Elastic Beanstalk、Microsoft Azure Web Apps
Java に利用可能なクラウドターゲット: AWS Elastic Beanstalk、Google App Engine、IBM Bluemix、SAP Cloud Platform、AWS Serverless、AWS Lambda 関数、Microsoft Azure Web Apps
.NET Core に利用可能なクラウドターゲット: Microsoft Azure Web Apps
1 つのみまたは複数のプロシージャーを選択し ( [ Main program ] = True、 [ Call protocol ] = [ Command Line ] または [ Internal ] 、 [ Expose as Web service ] = False)、 [ ターゲット ] で [ ローカル ] を選択した場合は、 [ デプロイ ] ボタンをクリックすると、実行に必要なバイナリとリソースを含むパッケージ (.zip または .jar) が作成されます。
選択したオブジェクト (または呼び出されるオブジェクト) が
EJB である場合は、デプロイツールで .ear (Enterprise Archive Resource) ファイルが作成されます。
生成された EAR には、すべてのサーブレットと静的コンテンツを含む 1 つの Web アプリケーション、すべての EJB が定義された 1 つの EJB アプリケーション、そしてアプリケーションで必要になるすべての JAR ファイルが格納されています。
デプロイパッケージに追加のファイルを含めるには、次のようにします。
- File オブジェクトを選択します。デプロイツールが所定のパス ( [ Extract to path ] プロパティで設定) からファイルを取得し、デプロイパッケージに追加できるようにするために、ファイルに対して [ Extract ] プロパティを設定する必要があります。
- <ナレッジベースディレクトリー>\<ターゲット環境のパス>\web\<Deployment Unit オブジェクト名>_user.gxdproj を作成または変更し、追加するファイルまたはディレクトリーを設定します(*)。詳細については、「GeneXus のデプロイ機能のカスタマイズ」を参照してください。
展開するパッケージの構成ファイル (Java の web.xml や .NET の web.config) を変更する必要があるが、構成ファイルを新たに作成したくない場合は、ApplicationServers\Template の下にある GeneXus ディレクトリーのテンプレートを変更することができます (Java の場合は JavaWeb\Generic_Servlet_Base.stg、.NET の場合は \CsharpWeb\IIS_base.stg)。
(*) user.gxdproj のファイル名は、
GeneXus 16 Upgrade 8 で <Deployment Unit オブジェクト名>_user.gxdproj に変更されました。これは、Deployment Unit ごとに異なるファイルとディレクトリーをデプロイできるようにするためです。
- <ナレッジベースディレクトリー>\<ターゲット環境のパス>\web\<Deployment Unit オブジェクト名>_user.gxdproj を作成または変更し、除外するファイルまたはディレクトリーを設定します。詳細については、「GeneXus のデプロイ機能のカスタマイズ」を参照してください。
Q: パッケージはどこに作成されますか。
A: 出力ウィンドウで詳細を確認してください。通常、パッケージは次のパスに作成されます: '<ナレッジベースディレクトリー>\<環境のディレクトリー>\Deploy\<ターゲット>\<デプロイメントユニット名>\<タイムスタンプ>\'。 [ ツール ] / [ ターゲット環境のディレクトリーを開く ] を使用して親フォルダに移動すると、Deploy フォルダが表示されます。
Q: どの程度インテリジェントに機能しますか。 [ classpath ] プロパティで設定したすべてのファイルまたはディレクトリーがパッケージ化されますか。
A: いいえ。GeneXus と [
アプリケーションをデプロイ ] の組み合わせは優秀ですが、そこまでインテリジェントではありません。対象となるのは、環境に対応するドライバーとアプリケーションで使用されるライブラリのみです (つまり、Excel ファイルが作成されない場合、POI ライブラリなどは含まれません)。したがって、追加のファイル (jar など) をアプリケーションとともにデプロイする必要がある場合は、それらを
ファイルとして
ナレッジベースに追加し、そのファイルを通常のメインオブジェクトの場合と同様に [ デプロイ ] ダイアログに追加する必要があります。詳細については、「
アプリケーションパッケージへの追加ファイルの追加」を参照してください。
Q: アプリケーションで Query Viewer を使用できますか。
A: はい。選択したオブジェクトで Query Viewer コントロールを使用している場合、Query Viewer ユーザーコントロールと参照先の Query オブジェクトに対応するバイナリとリソースが取得されます。
Q: GAM についてはどうですか。
A:
[ Enable Integrated Security ] プロパティを True に設定している場合は、GAM API に対応するバイナリとリソースが取得されます。GAM Example Web オブジェクトをパッケージ化する必要がある場合は、リストに GAMHome を追加してください。GAM のテーブルが初期化されたり、必要なアクセス許可やロールなどが設定されたりすることはありません。それについては、「
GAM -アプリケーションのデプロイ」を参照してください。
Q: GXflow 受信トレイとその API はデプロイされますか。
A: はい。ナレッジベースバージョンに BPM ダイアグラムがあり、デプロイに少なくとも 1 つの BPM ダイアログが含まれている場合は、対応するバイナリとリソースが取得されます。
Q: ビジネスプロセスで参照されているオブジェクトをデプロイするにはどうすればよいですか。
A: Business Process Diagram を選択すると、そのダイアグラムで使用されているオブジェクトがデプロイされます。注: ワークフローテーブルには影響はありません。その方法については、「
ワークフローベースのアプリケーションをデプロイする方法」を参照してください。
Q: 再編成用のデプロイパッケージを作成するにはどうすればよいですか。
A: このオプションは、 [ ビルド ] / [ 再編成をエクスポート ] で利用できます。詳細については、「
再編成をエクスポート」を参照してください。
Q: プロトタイピング用の領域はクラウドに用意されていますか。
A: はい。2012 年以降、
クラウドプロトタイピングで利用可能なサーバーが用意されています。※日本では対応しておりません。
[ Deploy to cloud ] プロパティを使用して、F5 キーを押すと、クラウドでのプロトタイピングを無料で行うことができます。
- PaaS へのデプロイ
- サーバーレスへのデプロイ
- サーバーレスの関数
- サーバーレス サービス バックエンド
- コンテナ化
- フロントエンドアプリケーションのデプロイ
- MSBuild タスク
- アプリケーションの設定