Как исправить ошибку: для этой услуги требуется идентификатор проекта, но не может быть определен

Я пытаюсь вставить данные в Google Datastore из AppEngine и получаю сообщение об ошибке:

java.lang.IllegalArgumentException: A project ID is required for this service but could not be determined from the builder or the environment.  Please set a project ID using the builder.
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92)
    at com.google.cloud.ServiceOptions.<init>(ServiceOptions.java:324)
    at com.google.cloud.datastore.DatastoreOptions.<init>(DatastoreOptions.java:85)
    at com.google.cloud.datastore.DatastoreOptions.<init>(DatastoreOptions.java:32)
    at com.google.cloud.datastore.DatastoreOptions$Builder.build(DatastoreOptions.java:75)
    at com.google.cloud.datastore.DatastoreOptions.defaultInstance(DatastoreOptions.java:123)

Вот мой код:

Datastore datastore = DatastoreOptions.defaultInstance().service();     
             KeyFactory keyFactory = datastore.newKeyFactory().kind("keyKind"); 
             Key key = keyFactory.newKey("keyName"); 
             Entity entity = Entity.builder(key) 
                 .set("name", "John Doe") 
                 .set("age", 30) 
                 .set("access_time", DateTime.now()) 
                 .build(); 
             datastore.put(entity); 

Как я могу исправить эту ошибку?

3 ответа

Решение

Вы используете стандарт AE или AE Flexible?

Убедитесь, что в вашем classpath есть api jar App Engine (каталог WEB-INF/lib).

В моем случае работает следующий код:

    BigQuery bigquery = BigQueryOptions.newBuilder().setProjectId("XXXXX")
            .setCredentials(
                    ServiceAccountCredentials.fromStream(new FileInputStream("key.json"))
            ).build().getService();

Я установил идентификатор проекта в конструкторе.

Я мог бы решить эту проблему, установив следующую переменную среды для идентификатора проекта.

      GCLOUD_PROJECT

если это не работает попробуйте

      GCP_PROJECT

больше информации здесь https://cloud.google.com/functions/docs/configuring/env-var

Другие вопросы по тегам