URL-адрес службы Google Cloud Run (обнаружение)

Я запускаю несколько служб gcloud, которым автоматически назначаются URL-адреса в следующем формате:

https://SERVICE_NAME-XXXXXXX-ew.a.run.app/

С этим не очень легко работать и передавать эти URL-адреса клиентам. Альтернативой является использование собственного домена, но для этого требуются поддомены жесткого кодирования в записях DNS (насколько я понимаю), и я бы хотел избежать этого и использовать URL-адреса по умолчанию.

Как лучше всего работать с этими URL-адресами? Я могу представить, как сохранить некоторое отображение service-> URL и передать его клиентам, но я бы не хотел изобретать колеса заново.


comment
Мои 2 цента ... Я предполагаю, что URL-адрес состоит из SERVICE_NAME + Project ID. Если я создаю службу, я ожидаю, что этот URL-адрес будет постоянным на протяжении всего срока службы моей службы. Затем я бы создал запись DNS, которая использует CNAME в качестве псевдонима. Поэтому вместо того, чтобы раскрывать: billing-kolban-12345-ew.a.run.app Я бы показал: billing.api.mycompany.com, где у нас есть карта CNAME. Чтобы получить наилучшие впечатления, подумайте об использовании управления API, например Apigee или CloudEndponts, в качестве прокси-сервера для вашей службы.   -  person Kolban    schedule 29.05.2020
comment
Все ли ваши услуги в одном регионе?   -  person guillaume blaquiere    schedule 29.05.2020


Ответы (2)


Вы можете использовать бета-версию Service Directory.

При развертывании услуги

  • Создайте свою службу с именем и URL-адресом в качестве метаданных

В вашем коде

  • Запросите метаданные службы с ее именем и получите URL-адрес.
  • Используйте URL

Вы не можете использовать функцию конечной точки службы, потому что у вас нет IP / порта.

Однако на данный момент есть клиентская библиотека, и вам нужно напрямую использовать API.

person guillaume blaquiere    schedule 29.05.2020
comment
Это выглядит многообещающе! Они заявляют: Service Directory allows clients to resolve services via DNS, HTTP, and gRPC. - однако нигде не найти, как запросить его через HTTP - это то, что нужно в мобильном приложении. - person Vojtěch; 30.05.2020
comment
HTTP? вы имеете в виду без SSL? Почему это невозможно с мобильным телефоном? - person guillaume blaquiere; 30.05.2020
comment
Я просто скопировал то, что они пишут - конечно, я хотел бы использовать HTTP с SSL. Но я не нашел способа вызвать его из приложений через HTTP. - person Vojtěch; 02.06.2020

https://github.com/ahmetb/runsd Я выпустил внешний инструмент под названием rund, который позволяет вам это сделать. Проверить это.


Спасибо за этот вопрос! Обнаружение службы по имени для Cloud Run - очень активная область работы. Однако пока нет активных графиков, которыми мы можем поделиться.

Вы можете увидеть прототип моего запуска в Cloud Run здесь: https://twitter.com/ahmetb/status/1233147619834118144

Связанные API-интерфейсы, такие как Google Cloud Service Directory, больше ориентированы на обнаружение пользовательских / самостоятельных сервисов, которые вы, возможно, захотите встроить в свой стек RPC, например gRPC. Это больше похоже на управляемый каталог доменных имен, который вы можете интегрировать со своим RPC.

Если вы заинтересованы в участии в альфа-версии этой функции в будущем, напишите мне на адрес ahmetb в google.

person Ahmet Alp Balkan    schedule 01.06.2020
comment
Привет, спасибо, что ответили, буду рада участию! Я хотел бы использовать межрегиональное открытие. - person Vojtěch; 02.06.2020