Пользовательский домен App Engine с сервисом

Я настроил собственный домен с App Engine после следования инструкциям по DNS-записям:

https://cloud.google.com/appengine/docs/standard/java/mapping-custom-domains

Он работает для службы по умолчанию с использованием URL-адреса http://MY_CUSTOM_DOMAIN, но я не могу получить доступ к другим службам с помощью URL-адресов http://SERVICE_ID.MY_CUSTOM_DOMAIN. Нужно ли сопоставлять другой набор записей DNS?

Ответ 1

Проверьте, как использовать поддомены и как подстановочные отображение работает в GCP документы здесь ( на самом деле это следующие шаги на веб - сайте, который вы следовали и связаны). Убедитесь, что ваш DNS-провайдер разрешает использование подстановочных знаков в записях хоста CNAME, иначе такое сопоставление будет невозможно.

В этой записи блога показан реальный пример сопоставления поддоменов с сервисами с помощью App Engine.

Ответ 2

Здесь пошагово:

  1. Убедитесь, что вы являетесь владельцем родительского домена здесь: https://www.google.com/webmasters/verification/home (например, для subdomain.example.com вам необходим собственный example.com). Если нет, попросите друга добавить вас в качестве владельца.
  2. Создайте запись CNAME, указывающую на: ghs.googlehosted.com (в облачном DNS или где-либо еще). Примечание. Это приведет к простою, но App Engine необходимо создать SSL-сертификат, чтобы избежать простоев...
  3. Добавить пользовательский домен в App Engine
    1. Зайдите в App Engine → Settings → Custom Domains
    2. Нажмите на Add a custom domain
    3. Выберите подтвержденный родительский домен и нажмите " Continue
    4. Введите поддомен (например, subdomain.example.com) и нажмите " Save mappings
    5. Нажмите Done (вы уже сделали этот последний шаг)
  4. Обновить правила отправки App Engine
    1. Запустите gcloud app describe --project <GOOGLE_CLOUD_PROJECT_ID> и посмотрите текущий раздел dispatchRules
    2. Создайте файл dispatch.yaml или dispatch.yml с вашим новым правилом, а также с уже существующими правилами (обратите внимание, что формат файла отличается от выходных данных команды)
    dispatch:
      - url: <DOMAIN>/* # e.g. subdomain.example.com/*
        service: <SERVICE-NAME>
    
    1. gcloud app deploy dispatch.yaml --project <GOOGLE_CLOUD_PROJECT_ID> его с помощью: gcloud app deploy dispatch.yaml --project <GOOGLE_CLOUD_PROJECT_ID>