ここでは、コマンド ライン プロシージャーを
AWS Lambda および
AWS API Gateway にデプロイする際の要件と手順について説明します。
「AWS Lambda を使用することで、サーバーのプロビジョニングや管理をすることなく、コードを実行できます。課金は実際に使用したコンピューティング時間に対してのみ発生し、コードが実行されていないときには料金も発生しません。」 - 引用: https://aws.amazon.com/lambda/
サーバーレスプラットフォームにデプロイする主な利点は次のとおりです。
- インフラストラクチャについて考える必要がありません。
- サーバーの管理、設定、インストールが不要です。
- サーバーのレンタルや購入が不要です。
- 24 時間 365 日稼動させても (ほぼ) 無料です(アプリケーションを使用している場合のみ支払います)。
- AWS Lambda を使用して、クラウドで実行するコードをデプロイします。
- コマンド ライン プロシージャーのデプロイメント。
- Java ジェネレーターしかありません。
- AWS アカウントと AWS API キーが必要です。
- Image、Audio、Video、BlobFile データタイプを使用する場合は、[ Storage Provider ] プロパティを使用する必要があります。これは、いずれのアプリマルチメディアも Amazon S3 などの外部 URL から提供する必要があるためです。
- 次のものはサポートされていません。
- Blob データタイプのファイル、Excel ファイル、PDF レポートへの読み取り/書き込みアクセス
- 関数がトリガーされるたびに、その実行時間が 5 分を超えないこと。この制限およびその他の情報については、ここを参照してください。
- Java ジェネレーターを使用してメインのコマンド ライン プロシージャーをビルドします。
- [ アプリケーションをデプロイ ] を使用して、デプロイ対象のプロシージャーを選択します。
- ターゲットのドロップダウンから次を選択します: [ AWS Lambda Function deploy (Main Procedure Only) ]
- AWS アクセスキー ID、AWS シークレット アクセス キー***、AWS デフォルトリージョンを設定します。
- アプリケーション名とステージ名を設定します (例: v1、v2、v3)。
- [ デプロイ ] をクリックします。
これで完了です。
最後の手順で、GeneXus により最終 URL が印刷されます。
これを SmartDevices ジェネレーターの
[ Services URL ] プロパティに使用できます。
重要な注記:
***
AWS Access Key を扱うには、カスタムポリシーが必要です(「
サーバーレスデプロイ用の IAM サーバーレスポリシー」)。または、単に aws:policy/AdministratorAccess を使用します。
デプロイした AWS Lambda 関数がデータベースにアクセスできるようにする
必要があります (同じ VPC およびセキュリティグループに属している必要があります)。そのためには、AWS Lambda 関数コンソールで手動で設定する必要があります。