google-cloud-sql - 在 GCP SQL 实例上安排启动/停止
问题描述
我想安排我的 GCP 的 SQL 实例。如何自动触发启动/停止 SQL 实例?
我已经成功调度了计算引擎虚拟机,但卡在了 SQL 实例调度中。
解决方案
为了实现这一点,您可以使用Cloud Function调用Cloud SQL Admin API来启动和停止 Cloud SQL 实例(您将需要 2 个 Cloud 函数)
def hello_world(request):
instance = 'test' # TODO: Update placeholder value.
request = service.instances().get(project=project, instance=instance)
response = request.execute()
j = response["settings"]
settingsVersion = int(j["settingsVersion"])
dbinstancebody = {
"settings": {
"settingsVersion": settingsVersion,
"tier": "db-n1-standard-1",
"activationPolicy": "Always"
}
}
request = service.instances().update(
project=project,
instance=instance,
body=dbinstancebody)
response = request.execute()
pprint(response)
request_json = request.get_json()
if request.args and 'message' in request.args:
return request.args.get('message')
elif request_json and 'message' in request_json:
return request_json['message']
else:
return f"Hello World!"
requirements.txt
google-api-python-client==1.7.8
google-auth-httplib2==0.0.3
google-auth==1.6.2
oauth2client==4.1.3
您可以查看我关于如何使用 Cloud Function启动 Cloud SQL 实例和停止 Cloud SQL 实例的代码
创建 Cloud Function 后,您可以配置 Cloud Scheduler以触发每个 Cloud Function 的 HTTP 地址,或者您可以按照本指南的推荐方法并使用 pub/sub 触发函数
推荐阅读
- sql-server - SQL Azure 和索引视图
- python-3.x - wxPython如何在DataViewTreeCtrl中找到选定节点的父/容器?
- java - 我可以使用单个驱动程序在 Selenium (Java) 中并行运行多个测试吗?
- javascript - w3.js 中的信息阅读困难
- html - 如何使用 CSS 使文本输入框变大?
- javascript - Javascript正则表达式至少匹配任何字符串中的一个特殊字符
- r - 更改堆积条形图的颜色,但保持每个类的堆栈按递增顺序排列
- ios - 输入设置值时如何删除用户意外输入的空格(用户默认值)
- java - 从完成服务中杀死线程?
- javascript - 在角度java脚本中过滤嵌套的对象数组