次の設定でGoogleCloudを使用しています。
共有VPCホストプロジェクト:「app1」と呼ばれるサブネットを持つ「production」と呼ばれるネットワークがあり、他のすべてのプロジェクト間で共有されます。
App1プロジェクト:VMインスタンスとApp Engineがノードで実行されています。VMインスタンスは、共有VPCネットワークのサブネットに直接接続されています。
問題は、AppEngineを同じネットワークに接続することが不可能に見えることです。 app.yaml
ファイルにパラメーターを挿入すると、ネットワークが見つからなかったと表示されます(現在のプロジェクトのみを検索します)。
では、App EngineインスタンスをVMに接続するにはどうすればよいですか?ネットワークピアリングを作成しようとしましたが、成功しませんでした。
最後に、AppEngine Flexで可能です: https://cloud.google.com/appengine/docs/flexible/nodejs/using-shared-vpc
App.yamlファイルで、ネットワーク設定名フィールドを使用して、共有VPCネットワークの完全修飾名を指定します。
ネットワーク:名前:projects/Host_PROJECT_ID/global/networks/NETWORK_NAME
どこ
Host_PROJECT_IDは、共有VPCホストプロジェクトのGCPプロジェクトIDです。 NETWORK_NAMEは、共有VPCネットワークの名前です。
SUBNETWORK_NAMEという名前のサブネットワークの一部になるようにサービスを構成するには、> subnetwork_nameフィールドも設定します。
ネットワーク:名前:projects/Host_PROJECT_ID/global/Networks/NETWORK_NAME subnetwork_name:SUBNETWORK_NAME
達成したいことについて調査した後、確認できるいくつかのポイントがあります。
subnet not found
エラーが表示される可能性があります。 これらの手順 ;のように、サブネットでリージョン(例:us-central
)を指定できます。 App Engineアプリケーションが実行されているリージョン(この例ではus-central
)と同じである必要があります。アプリケーションの作成時に設定したアプリのリージョンを変更することはできないため、アプリの場所を確認するには、 App Engine Dashborard に移動するか、コマンドgcloud app describe
を実行します。