この記事では、
AWS Lambda 関数として GeneXus アプリケーションを実装する方法について説明します。
AWS CLI MSI インストーラーをダウンロードして実行します。
1.AWS アカウントの作成
2.IAM ユーザーおよびアクセスキーの作成
次の手順に従います:
1.Deployment Unit オブジェクトを作成し、次の点を考慮してプロシージャーを追加します: Deployment Unit オブジェクトにメインのプロシージャーを 1 つだけ追加します。
2.[ ビルド ] > [ アプリケーションをデプロイ ] を選択すると、ダイアログボックスが開きます。 [ ターゲット ] のコンボボックスで次のオプションを選択します: AWS Lambda Functions。
3. [ オプション ] をクリックしてプロパティを設定します。
注:
[ AWS Profile name ] プロパティの設定に加えて、次も考慮する必要があります:
4. [ デプロイ ] ボタンをクリックし、AWS で実装します。
画像に示されているように、タイマートリガーの関数に必要な設定を行うことができます。
この例では、 [ AWS Profile name ] プロパティが設定されていないため、代わりに [ AWS Access Key ID ] プロパティおよび [ AWS Secret Access Key ] プロパティが設定されます。
-
GeneXus Java ジェネレーターのみ (サポートされる最新の JDK バージョン: JDK11)
- マルチメディアコンテンツの考慮事項
- 一時的な制限:
- WebSession データタイプはサポートされていません (将来的にサポートされる予定)。
- サーバー側から返される場合、KB Images はサポートされていません。例: &Image.FromImage(MyKBImage) を返すプロシージャー。
- 警告
- DBMS 接続プールはサーバーレスでは機能しません。
- これは、サーバーレスが要求ごとに 1 つの Lambda 関数を実行するためです。したがって、すべての Lambda 実行で DB プールが初期化されます。したがって、200 の要求を同時に受信した場合、200 の Lambda が起動され、DB への 200 の接続が開かれます。
関数のアプリケーションで、
Image、
Audio、
Video、または
BlobFile データタイプを使用する場合、Microsoft Azure または AWS S3 のような外部 URL からすべてのマルチメディアを提供する必要があるため、
[ Storage Provider ] プロパティを設定する必要があります。
同様の理由で、ファイルシステムを使用してコンテンツを提供すること、すなわち、ファイル (Blob データタイプ、Excel、または PDF レポート) への読み取り/書き込みアクセス権を持つことはサポートされていません。
AWS Lambda 関数は、AWS Lambda Java エンジンに必要な構造に従う GeneXus アプリケーションです。
AWS Lambda の GeneXus パッケージは次のようになります:
重要な注記:
- 「Lib」には、アプリケーションを実行するために必要な JAR ファイルが含まれています。
- 「Com」には Java の .class ファイルが含まれています。
- 「gx-awslambda-function.json」
- 実行時に Lambda が起動されたときに実行されるエントリーポイントが含まれています。**
**(これはコードのパラグラフとしてフォーマットされる必要があります)
{"entryPointClassName": "com.myapp.eventdriven.queue.handlesqsuserqueueevent"}
また、デプロイの [ Trigger Type ] プロパティに応じて、GeneXus は AWS Lambda の Handler プロパティを割り当てることに注意してください。
- SQS トリガー関数の場合、Lambda Handler の名前は次のようになります: com.genexus.cloud.serverless.aws.handler.LambdaSQSHandler::handleRequest
- Timer トリガー関数の場合、Lambda Handler の名前は次のようになります: com.genexus.cloud.serverless.aws.handler.LambdaEventBridgeHandler::handleRequest
- Event Bridge トリガー関数の場合、Lambda Handler の名前は次のようになります: com.genexus.cloud.serverless.aws.handler.LambdaEventBridgeHandler::handleRequest
- HTTP トリガー関数の場合、Lambda Handler の名前は次のようになります: com.genexus.cloud.serverless.aws.handler.LambdaHttpApiHandler::handleRequest
このハンドラーは GeneXus によって自動的に設定されます。ただし、手動でデプロイする場合は、適宜「Handler」を設定する必要があります。
ジェネレーター: Java
GeneXus 17 Upgrade 11 以降