最近のアクセス:
AWS Lambda 関数としてデプロイする方法

この記事では、AWS Lambda 関数として GeneXus アプリケーションを実装する方法について説明します。

インストールの要件

AWS CLI MSI インストーラーをダウンロードして実行します。

クラウドの設定

1.AWS アカウントの作成
2.IAM ユーザーおよびアクセスキーの作成

GeneXus でのモデリング

次の手順に従います:
1.Deployment Unit オブジェクトを作成し、次の点を考慮してプロシージャーを追加します: Deployment Unit オブジェクトにメインのプロシージャーを 1 つだけ追加します。
2.[ ビルド ] > [ アプリケーションをデプロイ ] を選択すると、ダイアログボックスが開きます。 [ ターゲット ] のコンボボックスで次のオプションを選択します: AWS Lambda Functions。
3. [ オプション ] をクリックしてプロパティを設定します。
: [ AWS Profile name ] プロパティの設定に加えて、次も考慮する必要があります:
4. [ デプロイ ] ボタンをクリックし、AWS で実装します。

画像に示されているように、タイマートリガーの関数に必要な設定を行うことができます。
イメージ:51534.png
この例では、 [ AWS Profile name ] プロパティが設定されていないため、代わりに [ AWS Access Key ID ] プロパティおよび [ AWS Secret Access Key ] プロパティが設定されます。

制限

  • GeneXus Java ジェネレーターのみ (サポートされる最新の JDK バージョン: JDK11)
  • マルチメディアコンテンツの考慮事項
    • ImageAudioVideoBlobFile データタイプを使用する場合は、[ Storage Provider ] プロパティを使用する必要があります。これは、いずれのアプリマルチメディアも Amazon S3 などの外部 URL から提供する必要があるためです。
    • 次のコンテンツの提供に FileSystem は使用できません: Blob データタイプのファイル、Excel ファイル、PDF レポートへの読み取り/書き込みアクセス。
  • 一時的な制限:
    • WebSession データタイプはサポートされていません (将来的にサポートされる予定)。
    • サーバー側から返される場合、KB Images はサポートされていません。例: &Image.FromImage(MyKBImage) を返すプロシージャー。
  • 警告
    • DBMS 接続プールはサーバーレスでは機能しません。
      • これは、サーバーレスが要求ごとに 1 つの Lambda 関数を実行するためです。したがって、すべての Lambda 実行で DB プールが初期化されます。したがって、200 の要求を同時に受信した場合、200 の Lambda が起動され、DB への 200 の接続が開かれます。

アーキテクチャの考慮事項

関数のアプリケーションで、ImageAudioVideo、または BlobFile データタイプを使用する場合、Microsoft Azure または AWS S3 のような外部 URL からすべてのマルチメディアを提供する必要があるため、[ Storage Provider ] プロパティを設定する必要があります。
同様の理由で、ファイルシステムを使用してコンテンツを提供すること、すなわち、ファイル (Blob データタイプ、Excel、または PDF レポート) への読み取り/書き込みアクセス権を持つことはサポートされていません。

検証

AWS Lambda 関数は、AWS Lambda Java エンジンに必要な構造に従う GeneXus アプリケーションです。
AWS Lambda の GeneXus パッケージは次のようになります:
イメージ:51535.png
重要な注記:
  • 「Lib」には、アプリケーションを実行するために必要な JAR ファイルが含まれています。
  • 「Com」には Java の .class ファイルが含まれています。
  • 「gx-awslambda-function.json」
    • 実行時に Lambda が起動されたときに実行されるエントリーポイントが含まれています。**
**(これはコードのパラグラフとしてフォーマットされる必要があります)
{"entryPointClassName": "com.myapp.eventdriven.queue.handlesqsuserqueueevent"}
また、デプロイの [ Trigger Type ] プロパティに応じて、GeneXus は AWS Lambda の Handler プロパティを割り当てることに注意してください。
イメージ:51536.png
  • 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 以降
  

サブページ
Created: 23/01/23 21:02 by Admin Last update: 24/03/25 23:57 by Admin
カテゴリ
Powered by GXwiki 3.0