別のプロジェクトのApp Engineアプリケーションから1つのCloud Platformプロジェクトに格納されているGoogle Cloud SQLインスタンスにアクセスしようとしていますが、 。 SQLインスタンスへIAM権限を設定していても、異なるGCPプロジェクトのGoogle Cloud SQLインスタンスにアクセスできない
接続は次のエラーで失敗します。OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
が、私はGoogleのマニュアルの手順に従って、プロジェクトの住宅クラウドSQLのためのIAM権限リストに2つ目のプロジェクトのためのApp Engineサービスアカウントを追加しましたインスタンス(「Cloud SQL Editor」をロールとして使用)。私のアプリで使用している接続の詳細と設定は、Cloud SQLインスタンスと同じプロジェクトに格納されている完全に機能するApp Engineアプリで使用されているものと同じです。
私の設定についてオフ思える唯一のものは、デフォルトの1([MY-PROJECT-NAME]@appspot.gserviceaccount.com
)のように見えるのApp Engineサービスアカウントは、IAMの権限リストに表示されている間、私の第二GCPプロジェクトでは、このサービスアカウントがないであるということですIAM & Adminのサービスアカウントタブの下に表示されます。記載されている唯一のサービスアカウントはCompute Engine default service account
です。私はサービスアカウントを削除していません。ここにはApp Engineのデフォルトサービスアカウントはありませんでしたが、MySQL接続とは別にApp Engineアプリはうまく動作します。
関連性があるかどうかわかりませんが、MySQL Engineを使用して接続しているApp Engine標準環境でPython 2.7アプリケーションを実行しています。