Какую учетную запись службы использует гибкая среда для доступа к хранилищу данных в другом проекте?

Работая в гибкой среде в одном проекте, я хочу записать в другой проект, используя com.google.cloud.datastore.Datastore.

Под какой «служебной учетной записью» выполняется код в среде Flex? Какие разрешения нужны?

Код:

Datastore ds = DatastoreOptions.builder().projectId("projectB").build().service();
ds.put(entity);

Stacktrace, когда разрешения неверны.

com.google.cloud.datastore.DatastoreException: Missing or insufficient permissions.
    at com.google.cloud.datastore.spi.DefaultDatastoreRpc.translate(DefaultDatastoreRpc.java:105)
    at com.google.cloud.datastore.spi.DefaultDatastoreRpc.commit(DefaultDatastoreRpc.java:133)
    at com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:390)
    at com.google.cloud.datastore.DatastoreImpl$4.call(DatastoreImpl.java:387)
    at com.google.cloud.RetryHelper.doRetry(RetryHelper.java:179)
    at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:244)
    at com.google.cloud.datastore.DatastoreImpl.commit(DatastoreImpl.java:386)
    at com.google.cloud.datastore.DatastoreImpl.commitMutation(DatastoreImpl.java:380)
    at com.google.cloud.datastore.DatastoreImpl.put(DatastoreImpl.java:340)

person Joshua Fox    schedule 01.11.2016    source источник


Ответы (1)


Ответ: разрешения владельца хранилища данных на

<source-project-name>@appspot.gserviceaccount.com

Обратите внимание, что это имя проекта в удобочитаемой строке, а а не числовой идентификатор, который можно найти в других сервисных аккаунтах по шаблону [email protected]. ком и тому подобное.

person Joshua Fox    schedule 02.11.2016