GCP 配置外部主控问题

GCP 配置外部主控问题

我正在跟进GCP 教程从外部主服务器创建副本实例。Cloud SQL API 已启用,我正在使用控制台中的 Google Shell 运行命令。我还尝试从计算引擎实例使用 gcloud auth login 获取凭据,但遇到了完全相同的问题。

我正在创建内部主控,没有任何问题:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
 --header 'Content-Type: application/json' \
 --data '{"name": "int-clouddb5",
          "region": "us-central1-a",
          "databaseVersion": "MYSQL_5_5",
          "onPremisesConfiguration": {"hostPort": "79.xx.xx.xx:3306"}}' \
 -X POST \
 https://www.googleapis.com/sql/v1beta4/projects/my-project-222/instances

但是当以这种方式设置副本时:

curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
 --header 'Content-Type: application/json' \
 --data '{"replicaConfiguration":
           {"mysqlReplicaConfiguration":
             {"username": "xxxx", "password": "xxxxx",
              "dumpFilePath": "gs://xxxbucket-data/xxxxmpv2.sql" }},
          "settings": {"tier": "D4","activationPolicy": "ALWAYS"},
          "databaseVersion": "MYSQL_5_5",
          "masterInstanceName": "int-clouddb5", "name": "sla-clouddb3"}' \
 -X POST \
 https://www.googleapis.com/sql/v1beta4/projects/xxxxxx/instances

我收到以下错误消息:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notAuthorized",
    "message": "The client is not authorized to make this request."
   }
  ],
  "code": 403,
  "message": "The client is not authorized to make this request."
 }
}

GCP 支持建议使用 us-central-1a,因为他们在其他地区报告了错误,但这并没有改变任何事情,而且那个人似乎不明白我的请求。有人知道那里出了什么问题吗?

编辑:用于执行所有操作的帐户是所有者帐户,它对所有项目拥有所有权限。

答案1

示例使用$(gcloud auth application-default print-access-token)获取请求的访问令牌,因此您需要使用gcloud auth application-default login,而不是gcloud auth login。您还需要确保您的帐户具有正确的权限配置外部主机。

答案2

到目前为止,答案是 Cloud SQL 外部主复制已损坏。支持团队的建议相当……嗯,我让你判断。

*您好,根据我们后端团队的核实,已经发现了类似的错误,这些问题与外部主复制有关。相关团队已经在处理这个问题,但尚未提供预计解决时间,尽管这个问题已经是高优先级问题。目前,我们建议采用以下解决方法:

a.) 使用mysqldump并暂停一段时间[1]

b.) 使用 GCE 实例进行复制 [2]*

希望对您有所帮助。如果您需要进一步说明,请告诉我。此致,E. Google Cloud Platform 支持

相关内容