Google AppEngineのNestJSプロジェクトからGoogleCloudSQLのPostgreSQLにアクセスできません

Keisuke Goda

これはStackOverflowでの最初の質問ですので、情報が不足している場合は失礼します。

問題

Google AppEngineのNestJSからCloudSQLのPostgreSQLに接続するのに苦労しています。ローカル環境でアプリケーションを使用しようとすると、プログラムは機能しますが、Google App Engineでの本番環境では、機能しません。

私は日々苦労したので、ここで素晴らしいコミュニティに尋ねることにしました。

私の環境

  • Node.js:v10.19.0
  • NestJS:6.10.5
  • TypeORM
  • PostgreSQL:11.5.1

私のapp.yaml

runtime: nodejs10
env: standard

default_expiration: "4d 5h"

env_variables:
  DATABASE_HOST: < public IP for Cloud SQL instance >
  DATABASE_USERNAME: username
  DATABASE_PASSWORD: password
  DATABASE_NAME: databasename
  INSTANCE_CONNECTION_NAME: "PROJECT_ID:REGION:INSTANCE_ID:DATABASE_NAME"

handlers:
- url: /.*
  secure: always
  redirect_http_response_code: 301
  script: auto

resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

エラー

[Nest] 18   - 02/27/2020, 8:25:46 AM   [TypeOrmModule] Unable to connect to the database. Retrying (3)... +34816ms

2020-02-27 08:25:46 default[20200227t163916]  Error: connect ETIMEDOUT 34.84.188.209:5432      at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:

その他の操作

GAEサービスアカウント

また、クラウドSQLクライアント権限をGAEサービスアカウント(このサービスのようなもの[email protected])に追加しました。

以下に説明するように、package.jsonも追加しました。

  "engines": {
    "node": "10.x.x"
  },

typeormオプションで、追加のソケットパスを追加しました。

extra: {
   socketPath: `/cloudsql/<INSTANCE_CONNECTION_NAME>/`,
            },
このオプションを設定する必要があるかどうかわかりません(両方を試しました)。
socketPath: `/cloudsql/<INSTANCE_CONNECTION_NAME>/.s.PGSQL.5432

or 

socketPath: `/cloudsql/<INSTANCE_CONNECTION_NAME>
マリオ

GitHubで提供されている例によると

https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/master/appengine/cloudsql_postgresql/app.flexible.yaml

INSTANCE_CONNECTION_NAME環境変数には、パラメーターとしてDATABASE_NAMEが含まれていません。

例:my-awesome-project:us-central1:my-cloud-sql-instance

おそらくこれが原因で、インスタンスの名前がプロキシに対して解決されていない可能性があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

GoogleコンテナエンジンからGoogleCloudSQLにアクセスできません

分類Dev

Google AppEngineのスリムフレームワークでGoogleCloudSQLに接続できません

分類Dev

NodeJs:Google AppEngineからGoogleCloudSQLに接続できません

分類Dev

Google Cloud Platform:警告:プロジェクト[プロジェクト]にアクセスできないか、存在しません

分類Dev

EXPOプロジェクトでGoogleの場所の詳細photoReference値から画像を表示できません

分類Dev

google appengine、pycharm、pythonvirtualenvはlibにアクセスできません

分類Dev

Google AppEngineモジュールはデータストアにアクセスできません

分類Dev

Google AppEngineインスタンスに外部からアクセスできません

分類Dev

タイプcom.google.cloud.tools.gradle.appengine.core.AppEngineExtensionのオブジェクトに不明なプロパティ「httpAddress」を設定できませんでした

分類Dev

別のアプリ/プロジェクトからGoogle Cloud Datastoreにアクセスする

分類Dev

Google ComputeEngineからGoogleContainerRegistryにアクセスできません

分類Dev

Google Container Registryにプッシュできません(リポジトリにアクセスできません)

分類Dev

Googleマーケットプレイスのアプリを更新できません-アカウントがこのクラウドプロジェクトまたはアプリと同じドメインに属していません

分類Dev

Google AppEngineのhttpリクエストを無効にできません

分類Dev

GoogleコンテナエンジンのStackdriverでKubernetesメトリックにアクセスできません

分類Dev

Google Apps Scriptプロジェクトのクライアントシークレットファイルを使用して、GoogleからOAuth2アクセストークンを取得することはできますか?

分類Dev

Google AppEngineでPHPアプリケーションのオブジェクト変更通知を構成できません

分類Dev

2つの異なるデバイスからGoogleドライブにアクセスできません

分類Dev

Google AppEngine-プルキュー-タスクを削除できません:「プロジェクト名が無効です」

分類Dev

Google AppEngineプロジェクトでのFirestoreの使用

分類Dev

Googleスプレッドシートスクリプト:プロジェクトのプロパティを追加または削除できません

分類Dev

エラー:GWTプロジェクトのコンパイル中に、メインクラスcom.google.gwt.dev.Compilerが見つからないかロードできませんでした

分類Dev

android studio0.4.6のプロジェクトにgoogle-play-services.jarを追加できません

分類Dev

AndroidプロジェクトにGoogleマップを実装できません

分類Dev

Google AppScriptのサーバーハンドラーで呼び出しウィジェットのタグにアクセスできません

分類Dev

Google AppEngineのPHPフォームのアクションスクリプトが見つかりません

分類Dev

IllegalStateExceptionの取得:そのようなサーブレットはありません:デプロイされたJavaアプリケーションにGoogle AppEngineにアクセスするときのjsp

分類Dev

Google CloudPlatformのJupyterラボにアクセスできません。テンプレートが見つかりません: "403.html"

分類Dev

Googleのドキュメントに従った後、コールバック関数から$ scopeにアクセスできません

Related 関連記事

  1. 1

    GoogleコンテナエンジンからGoogleCloudSQLにアクセスできません

  2. 2

    Google AppEngineのスリムフレームワークでGoogleCloudSQLに接続できません

  3. 3

    NodeJs:Google AppEngineからGoogleCloudSQLに接続できません

  4. 4

    Google Cloud Platform:警告:プロジェクト[プロジェクト]にアクセスできないか、存在しません

  5. 5

    EXPOプロジェクトでGoogleの場所の詳細photoReference値から画像を表示できません

  6. 6

    google appengine、pycharm、pythonvirtualenvはlibにアクセスできません

  7. 7

    Google AppEngineモジュールはデータストアにアクセスできません

  8. 8

    Google AppEngineインスタンスに外部からアクセスできません

  9. 9

    タイプcom.google.cloud.tools.gradle.appengine.core.AppEngineExtensionのオブジェクトに不明なプロパティ「httpAddress」を設定できませんでした

  10. 10

    別のアプリ/プロジェクトからGoogle Cloud Datastoreにアクセスする

  11. 11

    Google ComputeEngineからGoogleContainerRegistryにアクセスできません

  12. 12

    Google Container Registryにプッシュできません(リポジトリにアクセスできません)

  13. 13

    Googleマーケットプレイスのアプリを更新できません-アカウントがこのクラウドプロジェクトまたはアプリと同じドメインに属していません

  14. 14

    Google AppEngineのhttpリクエストを無効にできません

  15. 15

    GoogleコンテナエンジンのStackdriverでKubernetesメトリックにアクセスできません

  16. 16

    Google Apps Scriptプロジェクトのクライアントシークレットファイルを使用して、GoogleからOAuth2アクセストークンを取得することはできますか?

  17. 17

    Google AppEngineでPHPアプリケーションのオブジェクト変更通知を構成できません

  18. 18

    2つの異なるデバイスからGoogleドライブにアクセスできません

  19. 19

    Google AppEngine-プルキュー-タスクを削除できません:「プロジェクト名が無効です」

  20. 20

    Google AppEngineプロジェクトでのFirestoreの使用

  21. 21

    Googleスプレッドシートスクリプト:プロジェクトのプロパティを追加または削除できません

  22. 22

    エラー:GWTプロジェクトのコンパイル中に、メインクラスcom.google.gwt.dev.Compilerが見つからないかロードできませんでした

  23. 23

    android studio0.4.6のプロジェクトにgoogle-play-services.jarを追加できません

  24. 24

    AndroidプロジェクトにGoogleマップを実装できません

  25. 25

    Google AppScriptのサーバーハンドラーで呼び出しウィジェットのタグにアクセスできません

  26. 26

    Google AppEngineのPHPフォームのアクションスクリプトが見つかりません

  27. 27

    IllegalStateExceptionの取得:そのようなサーブレットはありません:デプロイされたJavaアプリケーションにGoogle AppEngineにアクセスするときのjsp

  28. 28

    Google CloudPlatformのJupyterラボにアクセスできません。テンプレートが見つかりません: "403.html"

  29. 29

    Googleのドキュメントに従った後、コールバック関数から$ scopeにアクセスできません

ホットタグ

アーカイブ