能否通过Google Cloud Function调用Regional MIG创建GCP虚拟机实例?
方案可行性评估
这个方案是可行的。Regional托管实例组(MIG)原生支持跨同区域下多个可用区调度实例资源,当某一个可用区出现资源池耗尽的情况时,MIG会自动选择同区域内其他有剩余资源的可用区创建实例,能够大幅降低ZONE_RESOURCE_POOL_EXHAUSTED错误的出现概率。搭配Pub/Sub触发GCF实现按需触发实例创建的逻辑是完全合理的。
报错问题说明与优化建议
调用regionInstanceGroupManagers.createInstances接口的前置条件就是需要关闭实例重分发功能,只有当实例重分发类型设置为NONE时,该接口才允许调用,你排查到的报错原因完全正确。
你可以通过以下命令关闭现有Regional MIG的实例重分发功能:
gcloud compute instance-groups managed update 你的实例组名称 --region 实例组所在区域 --instance-redistribution-type NONE
你贴出的代码片段存在一处语法错误,函数定义行末尾缺少冒号,修正后应为:
def launch_vm(project, region, igm, body):
如果不需要指定实例创建的可用区,Regional MIG会自动选择资源充足的可用区调度实例,如果你有其他实例配置需求,直接在请求体的instances参数中补充对应字段即可。
内容的提问来源于stack exchange,提问作者Luiz Renno Costa
相关产品推荐
相关产品推荐

