я следую Руководство по GCP для создания экземпляра реплики из внешнего мастера. Cloud SQL API включен, и я использую оболочку Google из консоли для выполнения команд. Я также пробовал использовать экземпляр вычислительного движка с использованием входа в систему gcloud auth для получения учетных данных, но столкнулся с той же проблемой.
Я без проблем создаю внутренний мастер:
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, поскольку у них были сообщения об ошибках в других регионах, но это ничего не меняет, и парень, похоже, не понимает мою просьбу. Кто-нибудь знает, что там не так?
РЕДАКТИРОВАТЬ: учетная запись, используемая для выполнения всего, является учетной записью владельца, у нее есть все разрешения для всех проектов.
На данный момент ответ заключается в том, что внешняя главная репликация Cloud SQL нарушена. Предложение от службы поддержки вполне ... хммм, я вам судить.
* Здравствуйте! Согласно проверке нашей бэкэнд-команды, похожие ошибки уже были подняты в отношении внешней главной репликации. Соответствующая группа уже занимается этим вопросом, однако примерное время решения не сообщается, хотя этот вопрос уже имеет высокий приоритет. А пока предлагаются обходные пути ниже:
а.) Используйте mysqldump с временем простоя [1]
б.) Используйте экземпляр GCE для репликации [2] *
Я надеюсь, что это поможет. Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения. С уважением, E. Служба поддержки Google Cloud Platform
В образце используется $(gcloud auth application-default print-access-token)
чтобы получить токен доступа для запроса, поэтому вы хотите использовать gcloud auth application-default login
не gcloud auth login
. Вы также захотите убедиться, что в вашей учетной записи есть правильные разрешения настроить внешний мастер.