0

フロントエンド(React)とバックエンド(Express)が別々のWebアプリケーションを使用しているため、ローカル環境でフロントエンドはlocalhost:8080で実行され、バックエンドはlocalhost:Google Cloud:ストレージとApp Engine

https://[app_name].appspot.comで動作するApp Engineにバックエンドサーバーをデプロイできました。

さらに、thisを参照してGoogle Cloud Storageにフロントエンドを導入しました。ただし、フロントエンドアプリケーションもhttps://[app_name].appspot.comで実行されています。
アプリを開くと、フロントエンドが表示されていますが、APIコールが機能していません。

カスタムドメインがまだありません。また、postgresqlも使用しています。 フロントエンドとバックエンドに異なるURLを設定する方法はありますか?またはアプリケーションを設定する構造体に何か問題がありますか?

答えて

1

ドメイン名(デフォルトのappspot.comまたはカスタムのいずれか)へのマッピングは、サービスレベルではなくアプリケーションレベルで行われます。同じサービスの一部であるあなたの両方のサービスは、このようにして同じドメインにマッピングされます。

サイドノートここではサービスごとに異なるサービス/モジュール名(それぞれ.yamlファイル)を選択した場合は、デプロイ時に互いに上書きされます。

1つのサービスまたは別のサービスへのリクエストのルーティングは、ホスト/ドメイン部分ではなく、URL内のファイルパス部分のパターンマッチングに基づいて行われます。最初の試合の勝利と一致は常にデフォルトのサービスに行きます。

このため、通常フロントエンドはdefaultサービスです(名前を付けずにおくこともできます)。他の専用サービスでは、URLパスに識別パターンがあり、routing with a dispatch.yaml fileに使用されています。あなたのケースでは、例えば、バックエンドサービスは、特殊なものであろうと、このように、/backend/で始まるURLは、このようなdispatch.fileを持つことができ、のは言わせて、仕えることができます:

dispatch: 
    - url: "*/backend/*" 
    module: <backend-service-name> 

多かれ少なかれ関連:

注:特殊なサービス内の特定のパターンについても考慮する必要があります。たとえば、バックエンドサービスが現在/index.htmlのリクエストを処理している場合は、/backend/index.htmlの代わりに調整する必要があります。

それは(全体How Requests are Routedの項を参照)の両方のサービスが他のルーティング方法を使用して、ディスパッチファイルなしで並んで動作させることも可能かもしれないが、それはセットアップし、より脆弱なことはより困難だ私見。特にカスタムドメインを使用しようとする場合。

+0

ありがとうございます!それは本当に私が理解するのを助けた – Dan

関連する問題