Использование Pub / Sub в общедоступной службе Cloud Run

Согласно документации по аутентификации между сервисами для облака Выполните, чтобы использовать Pub / Sub и Cloud Scheduler в службе, доступ без аутентификации необходимо отключить, поскольку они полагаться на HTTP-вызовы из-за нулевой возможности масштабирования сервисов Cloud Run.

Мои службы разрешают внутренний трафик и трафик балансировщика нагрузки и должны быть общедоступными для клиентов внешнего интерфейса, но они также должны иметь возможность общаться друг с другом конфиденциально с помощью Pub / Sub.

Есть ли способ добиться этого? Кажется неестественным создавать отдельную частную службу только для использования Pub / Sub.


comment
Не могли бы вы пояснить, что вызывает что? Облачный запуск, который вызывает PubSub или Cloud Scheduler API? Или наоборот, push-подписка PubSub и Cloud Scheduler, которые вызывают службу Cloud Run?   -  person guillaume blaquiere    schedule 12.04.2021
comment
Я хочу, чтобы мои службы Cloud Run могли прослушивать подписки Pub / Sub. Итак, Pub / Sub вызывает Cloud Run.   -  person Seeven    schedule 12.04.2021


Ответы (1)


Это недостающий элемент. Вы не можете подключить свою push-подписку VPC PubSub и Cloud Scheduler (но также и Cloud Task, Cloud Build, Workflows, ...). Я спросил Google Cloud несколько месяцев назад, и скоро это должно быть исправлено новыми сетевыми функциями. По крайней мере, в 2021 году!

Итак, в вашем случае, если ваша служба Cloud Run доступна из общедоступного Интернета через балансировщик нагрузки, вы можете использовать эту общедоступную конечную точку для вызова пути, который вы хотите в своей службе, и, таким образом, для выполнения процесса.

Если ваш Cloud Run доступен только из ingress = internal, вы пока не можете этого сделать.

person guillaume blaquiere    schedule 12.04.2021
comment
Спасибо за ваш ответ. Мои службы общедоступны, но я хотел бы защитить конечные точки Pub / Sub. Думаю, я пока буду прикреплять свои собственные токены к сообщениям Pub / Sub. - person Seeven; 13.04.2021
comment
Да, вы не можете защитить только одну конечную точку с помощью службы IAM. Либо услуга целиком, либо ничего. Вы также можете использовать API-шлюз перед своими службами, чтобы иметь более точный контроль на каждом пути вашего API. - person guillaume blaquiere; 13.04.2021