我正在尝试使用gsutil cp
命令从GCE VM中读取存储桶中的文件。 GCE VM使用自定义存储帐户,该帐户对存储桶中的文件具有所需的IAM权限和访问策略。我的观察如下:
gsutil cp
命令正常工作并且文件已成功复制。gsutil cp
命令不起作用。在第2种情况下,gsutil cp
命令产生以下输出:
gsutil cp gs://<mybucket-name>/<myfile> .
INFO 0304 13:02:18.377339 retry_util.py] Retrying request, attempt #1...
INFO 0304 13:03:20.684459 retry_util.py] Retrying request, attempt #2...
INFO 0304 13:04:25.247341 retry_util.py] Retrying request, attempt #3...
INFO 0304 13:05:34.869920 retry_util.py] Retrying request, attempt #4...
INFO 0304 13:06:52.144510 retry_util.py] Retrying request, attempt #5...
任何人都可以建议如何做出这个以及这是否是预期的行为?从没有分配外部IP的GCE VM中读取存储桶中的内容的正确方法是什么?
没有外部IP地址的虚拟机实例缺少什么,因此它可以访问云存储是为您的虚拟机实例的子网启用Google私有访问。
正如Private Access Options for Services的文档中所述:
仅具有内部IP地址(无外部IP地址)的VM实例可以使用私有Google Access。他们可以访问Google API和服务的外部IP地址。
您可以在子网的基础上启用私有Google Access;它是VPC网络中子网的设置。要为Private Google Access启用子网并查看要求,请参阅Configuring Private Google Access
你只需要:
还要确保您的VM可以访问Cloud Storage API。