google-cloud-platform - 使用 Cloud Functions 启动/停止 Google Cloud SQL 实例
问题描述
我对谷歌云平台很陌生。我正在寻找在预定义时间自动启动和停止 mySQL 实例的方法。我发现我们可以创建一个云函数来启动/停止一个实例,然后使用云调度程序来触发它。但是,我无法理解这是如何工作的。
我使用了在 GitHub 中找到的代码。 https://github.com/chris32g/Google-Cloud-Support/blob/master/Cloud%20Functions/turn_on_cloudSQL_instance https://github.com/chris32g/Google-Cloud-Support/blob/master/Cloud%20Functions/turn_off_CloudSQL_instance
但是,我不熟悉任何编程语言,如 node、python 或 go。这就是混乱的原因。下面是我在 GitHub 上找到的打开 Cloud SQL 实例的代码:
# This file uses the Cloud SQL API to turn on a Cloud SQL instance.
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = discovery.build('sqladmin', 'v1beta4', credentials=credentials)
project = 'wave24-gonchristian' # TODO: Update placeholder value.
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
正如我前面提到的,我对 Python 并不熟悉。我刚刚在 GitHub 上找到了这段代码。我试图了解这个特定部分的作用:
dbinstancebody = {
"settings": {
"settingsVersion": settingsVersion,
"tier": "db-n1-standard-1",
"activationPolicy": "Always"
}
}
解决方案
dbinstancebody = {
"settings": {
"settingsVersion": settingsVersion,
"tier": "db-n1-standard-1",
"activationPolicy": "Always"
}
}
上面的代码块指定了您要更新的sql 实例属性activationPolicy
,其中与您的情况最相关的是允许您停止/启动 sql 实例。
对于第二代实例,激活策略仅用于启动或停止实例。您可以通过启动和停止实例来更改激活策略。停止实例可防止进一步的实例收费。
激活策略可以有两个值 Always 或 Never。Always 将启动实例,而 Never 将停止实例。
推荐阅读
- python - 安装npm包时如何解决python错误?
- amazon-web-services - 将 Docker-Compose YML 部署到 AWS ECS
- javascript - 用相同的值更新数组中的所有元素
- javascript - Google Analytics 中的数据差异和 Google 电子表格中的 API 结果
- c# - 我收到此错误,如果可能,需要帮助修复它。我正在尝试构建我的项目以查看输出,但它不会让我
- c# - 如何检查用户是否在 C# 中打开了浏览器
- java - 在 jgrasp 中运行多个 java 类
- python - 如何将一个 python 字典附加到另一个字典,同时保留它们的键值?
- r - 无法在 rstudio 云中加载 tidyverse
- c# - 反序列化 int 数组总是 nulll