Лучший подход - использовать другую машину в GCP, а не общаться с вашим домом. P C. Вы узнаете больше, и вам будет легче, в конечном счете, создавать решения. Поскольку я больше знаком с AWS, а не с GCP, я не могу назвать компоненты сети / безопасности, которые необходимо настроить, но документы говорят, что вам не нужно. Итак, теоретически, это должно быть как раз то, чтобы раскрутить другую вычислительную машину с запущенным на ней кодом Python.
Если вы решите поговорить с вашим домом P C, вам нужно будет перенаправить порты на вашем маршрутизаторе. В настоящее время он выступает в качестве брандмауэра для устройств локальной сети и не позволяет внешним машинам инициировать подключения к вашим внутренним адресам. например, ваш компьютер GCP инициирует соединение с вашим домом P C. Другой способ разрешен по умолчанию. Если вы подумаете об этом, у вашего маршрутизатора есть один IP-адрес в глобальной сети, но ваша локальная сеть может иметь несколько устройств (несколько сетевых адресов). Если ваш компьютер GCP подключается к WAN IP маршрутизатора через порт 8080, к какому IP-адресу локальной сети он должен подключаться? Вы должны помочь вашему маршрутизатору и явно сказать об этом.
Когда у вас есть сетевое решение, вы можете отладить само подключение (сервер может общаться с клиентом) с помощью netcat (nc / ncat, в зависимости от Linux distro). Netcat - это универсальный сетевой инструмент, с помощью которого вы можете просто открывать соединения (перед добавлением своей программы в стек отладки) и гарантировать, что сетевая часть вашего решения работает должным образом.
nc -v <destination_ip> <port>
Прост.
Это должно привести вас туда, где вы хотите быть. Работающее соединение между вашим контроллером беспилотника GCP и Python процессорной машиной.
Бонус - если вы хотите быстрый способ заставить ваш компьютер (P C или другой) прослушивать порт, вы можете использовать встроенный в Python модуль файлового сервера HTTP с
python -m http.server 8080
Это будет обслуживать файлы из каталога, в котором вы выполнили эту команду. Так что имейте это в виду, если вы открыты для мира.
Или простой «эхо-сервер», использующий netcat.
nc -v -l 8080
Наконец, для solid Python HTTP API Framework, я настоятельно рекомендую FastAPI
. Это позволяет быстро написать HTTP-сервер API, например, с помощью метода POST, который может вызывать ваш беспилотный контроллер GCP. Он имеет большой бонус для генерации как интерактивных документов OpenAPI, пример , для вашего кода, так и с использованием сторонних инструментов от Swagger (которые вы можете видеть в связанном примере), сгенерируйте сервер / клиент / тестирование кода "котельной плиты". Я также упомянул, что их документы великолепны?