问题描述
Google Cloud Platform有各种各样的产品。在给定的项目中,我可能会使用Compute Engine,Cloud SQL,Kubernetes,存储,IAM和Admin。或者,我可能会使用Cloud Run,VMware Engine,App Engine,Cloud Functions和Spanner。
我不知道这些事情中的绝大多数是做什么的,而且在我探索和学习时,很难跟踪给定项目中使用的产品。但是,假设我想回顾性地记录项目的所有组件,以便可以从头开始创建它。
简短地逐个浏览每个产品并寻找过去文明的迹象,有什么方法可以列出我的所有足迹吗?
我认为我的目标可以通过以下伪代码很好地概括:
create project "blank-project"
diff "my-project" "blank-project"
解决方法
正如约翰所说,云资产清单可以帮助您实现这一目标。我建议您export the assets to BigQuery。
为什么?因为这样,您可以通过简单的SQL查询轻松执行差异。您每天有1次出口,因此您可以拥有所有足迹的历史记录。
但是,它列出了资产,而不是资产的配置。我的意思是,您知道您有一个GKE集群,但是未列出该集群的内容(已在其上部署的服务/吊舱)。您对组件进行了比较,而不是组件的内容。
最后一件棘手的事情。导出到BigQuery并不是真正的用户友好型。这是我在我的公司所做的以实现这一目标
- 创建一个可使用Python调用云资产清单导出的云函数
- 创建每天都会触发此功能的Cloud Scheduler
这里的问题是:每次导出之前的数据都会被删除,并用新的数据替换。所以,你必须这样做
- 创建一个新的BigQuery表,该表每天进行分区,并具有与Asset表相同的架构
- 创建一个计划查询(在Cloud Function触发后15分钟设置计划程序),将资产导出的内容复制到新的分区表中