Связь частного сервиса с сервисом для Google Cloud Run

Я хотел бы, чтобы мои службы Google Cloud Run конфиденциально обменивались данными друг с другом по протоколу, отличному от HTTP, и / или без добавления аутентификации носителя в мой код.

Мне известно об этой документации от Google, в которой описывается, как вы можете осуществлять аутентифицированный доступ между службами, хотя, очевидно, только для HTTP.

Думаю, у меня есть общее представление о том, что необходимо:

  1. Создайте собственный VPC для моего проекта
  2. Включите бессерверный соединитель VPC.

Я не совсем понимаю:

  • Это необходимо? Могут ли сервисы Cloud Run в рамках одного проекта уже видеть друг друга?
  • How do services address one another after this?
    • Do I gain the ability to use simpler by-convention DNS names? For example, could I have each service in Cloud Run manifest on my VPC as a single first level DNS name like apione and apitwo rather than a larger DNS name that I'd then have to hint in through my deployments?
    • Если нет, то есть ли какой-либо механизм, позволяющий службам обнаруживать имена?
  • Если я помещу свою управляемую базу данных Postgres Cloud SQL в эту сеть, могу ли я контролировать ее DNS-имя?

Наконец, есть ли еще какие-то подводные камни, о которых я хотел бы знать? Вы можете предположить, что мой вариант использования очень простой, две или более долгоживущих службы в Cloud Run, осуществляющие связь не по протоколу HTTP TCP / UDP.


Я также нашел потенциально связанный запрос функции Google Cloud Run, за который стоит проголосовать, если это не так. в настоящее время возможно.


person Alexander Trauzzi    schedule 19.04.2021    source источник
comment
Мне непонятно, что такое общение без HTTP? Это для вызова Cloud Run? Или это связь, инициированная Cloud Run со службой, работающей в вашем VPC? Кроме того, если вы используете DNS, что будет создавать записи в DNS? Чего ты ждешь?   -  person guillaume blaquiere    schedule 19.04.2021
comment
Например, не-http между облачными службами. Что касается DNS, я не знаю, вот какой вопрос я задаю. Видны ли друг другу облачные сервисы в одном регионе и в одном проекте?   -  person Alexander Trauzzi    schedule 20.04.2021


Ответы (1)


Сервисы Cloud Run доступны только через HTTP-запрос. вы не можете использовать другой сетевой протокол (например, SSH для входа в экземпляры или связь TCP / UDP).

Однако Cloud Run может инициировать такое подключение к внешним службам (например, экземпляры Compute Engine, развернутые в вашем VPC, благодаря бессерверному соединителю VPC).

Бессерверный коннектор VPC позволяет создать мост между управляемой средой Google Cloud (где находятся экземпляры Cloud Run (и Cloud Functions / App Engine)) и VPC вашего проекта, где у вас есть собственные экземпляры (Compute Engine, узел GKE бассейны, ...)

Таким образом, у вас может быть служба Cloud Run, которая достигает подов Kubernetes на GKE через TCP-соединение, если это ваше требование.


Что касается обнаружения сервисов, то это пока не так, но Google активно работает над этим и Ахмет (Google Cloud Dev Advocate on Cloud Run) недавно выпустил инструмент для этого. Но ничего особенного.

person guillaume blaquiere    schedule 20.04.2021