Подписка на облачный паб в облаке Google не найдена в облаке, но найдена в локальной - PullRequest
0 голосов
/ 03 февраля 2020

так что у меня странная проблема, у меня есть подписка в пабе Google Cloud sub. На моем локальном компьютере программа может найти подписку без каких-либо проблем, но в облаке (я использую виртуальную машину GCP) я получаю эту ошибку:

com.google.api.gax.rpc.NotFoundException: com.google.api.gax.rpc.NotFoundException: io.grpc.StatusRuntimeException: NOT_FOUND: Resource not found (resource=subs_id).

Несмотря на то, что я использовал subs_id и на моем локальном компьютере.

Моя настройка выглядит следующим образом:

  1. Учетные данные учетной записи службы. json:
{
  "type": "service_account",
  "project_id": "project-id-123",
  "private_key_id": "privateKeyId",
  "private_key": "-----BEGIN PRIVATE KEY-----\nprivateKey\n-----END PRIVATE KEY-----\n",
  "client_email": "user@project-id-123.iam.gserviceaccount.com",
  "client_id": "clientId",
  "auth_uri": "auth_uri",
  "token_uri": "token_uri",
  "auth_provider_x509_cert_url": "certs_url",
  "client_x509_cert_url": "clients_certs_url
}
Код (в основном скопированный из их документации):

@ Component publi c Класс GoogleCloudPubSubListenerImpl реализует GoogleCloudPubSubListener, InitializingBean {

private stati c final String PROJECT_ID = ServiceOptions.getDefaultProjectId ();

частные данные c final Logger LOGGER = LoggerFactory.getLogger (GoogleCloudPubSubListenerImpl.class);

@ Value ("$ {pub.sub" .subscription} ")
private String subId;

@ Override publi c void listenPubSub () {ProjectSubscriptionName subscriptionName = ProjectSubscriptionName.of (PROJECT_ID, subId);

Subscriber subscriber;
try {
  subscriber = Subscriber
      .newBuilder(subscriptionName,
          new someService()).build();
  subscriber.startAsync().awaitRunning();

} catch (Exception e) {
  LOGGER.error("Subscriber err : {}, {}", e.getLocalizedMessage(), e);
}   }

В облаке я запускаю эту команду:

gcloud pubsub subscriptions pull subs_id
ERROR: (gcloud.pubsub.subscriptions.pull) NOT_FOUND: Resource not found (resource=subs_id).

Но эта команда успешно выполняется:

gcloud pubsub subscriptions pull projects/project-id-123/subscriptions/subs_id
Listed 0 items.

Когда я изменяю subs_id в моей программе на projects/project-id-123/subscriptions/subs_id, я получаю ошибка:

Invalid character "/" in path section "projects/project-id-123/subscriptions/subs_id".

У кого-то есть такая же проблема? Нужен совет здесь ... Спасибо

...