0

Google 프론트 엔드 (React)와 백엔드 (Express)가 별도로있는 웹 응용 프로그램을 사용하고 있으므로 내 로컬 환경에서 localhost : 3000에서 백엔드가 실행되는 동안 frontend는 localhost : 8080에서 실행됩니다.Google Cloud : 스토리지 및 App Engine

https://[app_name].appspot.com에서 실행되는 App Engine에 백엔드 서버를 배포 할 수 있습니다.

그리고 나서 this을 참조하여 Google 클라우드 스토리지에 프론트 엔드를 배포했습니다. 그러나 프론트 엔드 응용 프로그램은 https://[app_name].appspot.com에서도 실행됩니다.
앱을 열면 프런트 엔드가 표시되지만 API 호출이 작동하지 않습니다.

사용자 정의 도메인이 아직 없으며 postgresql도 사용하고 있습니다. 프론트 엔드와 백엔드에 다른 URL을 설정할 수있는 방법이 있습니까? 또는 응용 프로그램을 설정하기 위해 구조에서 잘못된 작업을하고 있습니까?

답변

1

도메인 이름 (기본값은 appspot.com 또는 사용자 정의 도메인 이름)에 대한 매핑은 서비스 수준이 아닌 응용 프로그램 수준에서 수행됩니다. 따라서 동일한 앱에 속한 두 서비스가 동일한 도메인에 매핑됩니다.

사이드 노트 : 각 서비스 (각 .yaml 파일)에 대해 다른 서비스/모듈 이름을 선택했다고 가정합니다. 그렇지 않으면 배포시 서로를 덮어 씁니다.

요청을 하나의 서비스 또는 다른 서비스로 라우팅하는 것은 호스트/도메인 부분이 아닌 URL의 파일 경로 부분에서 패턴 일치를 기반으로 수행됩니다. 첫 번째 경기에서 이기고 경기가 없으면 항상 기본 서비스로갑니다.

일반적으로 프론트 엔드는 default 서비스입니다 (이름을 지정하지 않은 상태로 둘 수도 있습니다). 다른보다 헌신적 인 서비스는 routing with a dispatch.yaml file에 사용되는 URL 경로에 식별 패턴을 가지고 있습니다. 귀하의 경우에는, 예를 들어, 백엔드 서비스는 전문 하나가 될 것입니다 때문에, /backend/로 시작하는 URL은이 같은 dispatch.file을 가질 수의 말을하자, 봉사 할 수 있었다 :

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

다소 관련 :

,

참고 : 특수 서비스 내부의 특정 패턴도 고려해야합니다. 예를 들어 백엔드 서비스가 현재 /index.html에 대한 요청을 제공하는 경우 /backend/index.html 대신 제공하도록 조정해야합니다.

다른 라우팅 방법 (전체 How Requests are Routed 섹션 참조)을 사용하여, 디스패치 파일없이 옆에 두 서비스 모두 작업면을 만드는 것이 가능하지만, 수도가 설정하는 것이 더 어렵고, 약하고 이럴. 특히 맞춤 도메인을 사용하려고 할 때 특히 그렇습니다.

+0

정말 고마워요! 정말 알아낼 수있었습니다. – Dan

관련 문제