web-dev-qa-db-ja.com

API Gatewayから直接Amazon RDSインスタンスをクエリすることはできますか?

私はAPI Gatewayを使い始めたばかりですが、これまでに試したところ、本当に強力なツールです。現在作業中のプロジェクトでは、RDSでPostgreSQLインスタンスを使用しています。 APIゲートウェイからDynamoDBテーブルに直接アクセスできることを確認したので、リレーショナルデータベースにアクセスする方法はないかと考えていました。そのため、GETメソッドを使用してリソースを作成し、データベースに接続するように構成しましたが、正しいパラメーターを使用しているかどうかはわかりませんでした。

ターゲットバックエンドに関する情報

そのため、各設定のフィールドの引数については確信が持てませんでした。 AWSサブドメインでは、pgAdminクライアントから接続しているようにパブリックURLを書きました(ポートがないため、構造全体が受け入れられなかったため、何か悪いことをしていることがわかります)。その前に、RDSリソースのARNを使用しようとしましたが、次のエラーが表示されました。

AWS ARN for integration must contains path or action

実行ロールについては、Postgresリソースにアクセスするためのポリシーを備えたロールを作成しました。

RDSのドキュメントを読んで、HTTP動詞GETまたはPOSTとActionという名前のクエリパラメータを使用してRDSからクエリAPIを使用できることがわかったので、クエリを配置する方法を見つけようとしましたこのようにステートメント:

HTTPクエリベースのリクエスト

しかし、メソッドをテストすると、これは応答本体です。

{
  "message": "AWS ARN for integration contains invalid action"
}

そして、これはログです:

Execution log for request test-request
Sat Mar 19 15:27:17 UTC 2016 : Execution failed: AWS ARN for integration contains invalid action
Sat Mar 19 15:27:17 UTC 2016 : Method completed with status: 400

私は多くのことを間違っていることを知っているので、これが実際に可能であるかどうか、そしてそれを行う方法を誰かが知っています。詳細なチュートリアルがまだ見つからないためです。

19
Camilo Ortegón

いいえ、これは不可能です。 API Gatewayサービスプロキシは、AWS APIへの呼び出しのみをプロキシします。 RDS APIは、データベースの作成、データベースの削除、スナップショットの取得などの操作のみを許可します。データベースに対して接続してクエリを実行することはできません。

RDSデータベースに接続してクエリを実行する機能を持つLambda関数でAPI Gatewayをポイントすることを検討する必要があります。

25
Mark B