WedX - журнал о программировании и компьютерных науках

Клиент не авторизован для выполнения этого запроса при попытке получить экземпляр google cloud sql с помощью java.

Я хочу получить подробную информацию об экземпляре Google Cloud Sql, используя учетную запись облачной службы Google. Я создал учетную запись службы, для которой включена оплата. Я успешно выполнил функции Google Cloud Storage, такие как создание корзины, удаление корзины и т. Д., Используя эту учетную запись службы из java-кода. Но пока я пытался получить функциональность GCS Sql, я получаю следующую ошибку:

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

Ниже приведен фрагмент кода Java:

private SQLAdmin authorizeSqlAdmin() throws Exception {

    if (cloudSqlAdmin == null) {

        HttpTransport httpTransport = new NetHttpTransport();
        JsonFactory jsonFactory = new JacksonFactory();

        List<String> scopes = new ArrayList<String>();
        scopes.add(SQLAdminScopes.CLOUD_PLATFORM);
        scopes.add(SQLAdminScopes.SQLSERVICE_ADMIN);
        String propertiesFileName = "/cloudstorage.properties";
        Properties cloudStorageProperties = null;
        try {
            cloudStorageProperties = Utilities.getProperties(propertiesFileName);
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return null;
        }

        Credential credential = new GoogleCredential.Builder()
                .setTransport(httpTransport)
                .setJsonFactory(jsonFactory)
                .setServiceAccountId(
                        cloudStorageProperties.getProperty(ACCOUNT_ID_PROPERTY)
                )
                .setServiceAccountPrivateKeyFromP12File(
                        new File(cloudStorageProperties.getProperty(PRIVATE_KEY_PATH_PROPERTY))
                )
                .setServiceAccountScopes(scopes).build();

        cloudSqlAdmin = new SQLAdmin.Builder(httpTransport, jsonFactory, credential)
                .setApplicationName(
                        cloudStorageProperties.getProperty(APPLICATION_NAME_PROPERTY)
                )
                .build();
    }

    return cloudSqlAdmin;
}

public DatabaseInstance getInstanceByInstanceId(String projectId, String instanceId) throws Exception {
    SQLAdmin cloudSql = authorizeSqlAdmin();
    Get get = cloudSql.instances().get(projectId, instanceId);
    DatabaseInstance dbInstance = get.execute();
    return dbInstance;
}

Что мне здесь не хватает? Кто-нибудь, пожалуйста, помогите мне.

NB: я добавил эту учетную запись службы в качестве члена на вкладке разрешений и предоставил этой учетной записи разрешение CAN EDIT.

21.07.2014

Ответы:


1

Эта проблема решена путем замены значения instance id.

Из консоли GCS я получил идентификатор экземпляра как идентификатор_проекта:имя_экземпляра. Я поместил всю часть project-id:instance-name в качестве идентификатора экземпляра, и поэтому я получил указанную выше ошибку.

После некоторых проб я обнаружил, что мне нужно указать здесь instance-name как instanceId.

Get get = cloudSql.instances().get(projectId, instanceId);

Это решило мою проблему.

22.07.2014
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]