我正在尝试在本地调试 Cloud Run 容器。在我的代码中,我试图通过 computeMetadata 检索有关环境的信息。
location = requests.get("http://metadata.google.internal/computeMetadata/v1/instance/region",
headers={'Metadata-Flavor': 'Google'}).text
logging.warning(f"Location set to {location}")
project = requests.get("http://metadata.google.internal/computeMetadata/v1/project/project-id",
headers={'Metadata-Flavor': 'Google'}).text
logging.warning(f"Project set to {project}")
执行这段代码时,出现以下错误。
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='metadata.google.internal', port=80): Max retries exceeded with url: /computeMetadata/v1/instance/region (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb00be99190>: Failed to establish a new connection: [Errno 111] Connection refused'))
当然,据我所知,在我的 Macbook 上的 80 端口上运行的任何东西都可以提供此服务,而且容器中似乎也没有任何东西可以提供服务,因此它无法连接是有道理的.
话虽如此,我如何在本地执行此代码以确保它在部署之前按我想要的方式运行?目前我已经将它包装在一个 try/except 语句中——但它对于复制现实世界的场景并不理想。