5

Próbuję opublikować istniejący temat pubsub z aplikacji Scala działającej w Google Container Engine (np. Działa w Kubernetes).Google Cloud Platform: nie można uzyskać dostępu do Pubsub z silnika kontenera

mam włączony (chyba) odpowiednie uprawnienia do bazowego klastra:

permissions

Jednak kiedy próbuję uruchomić mojej aplikacji Scala, pojawia się następujący błąd:

2016-12-10T22:22:57.811982246Z Caused by: 
com.google.cloud.pubsub.PubSubException: java.lang.IllegalStateException: 
No NameResolverProviders found via ServiceLoader, including for DNS. 
This is probably due to a broken build. If using ProGuard, check your configuration 

Pełny ślad stosu here.

kod Mój Scala jest dość dużo, zaraz po wyjęciu z Skrócona instrukcja obsługi:

val TopicName = "my-topic" 
val pubsub = PubSubOptions.getDefaultInstance.getService 
val topic = pubsub.getTopic(TopicName) 
... 
topic.publish(Message.of(json)) 

myślę, że może brakować niektórych konfiguracji żywotne Kubernetes, więc wszelkie pomoc jest bardzo cenione.

+0

Dokładna samo pytanie siedzi na forach wsparcia google teraz: https://groups.google.com/forum/#!topic/cloud-pubsub-discuss/5OVkvyK6LwM –

+0

W końcu użyliśmy znakomita biblioteka Spotify GCP Pubsub, która rozwiązała je dla nas: https://github.com/spotify/async-google-pubsub-client –

Odpowiedz

3

Odkryłem, że ten problem występuje, gdy sbt zarządza zależnością "com-google-cloud-pubsub". Moja praca nad tym polega na tym, że stworzyłem projekt maven i zbudowałem słoik z taką zależnością. Następnie dodałem ten słoik do mojej ścieżki klas i do pliku build.sbt dodałem adnotację "com-google-cloud-pubsub" jako "dostarczony". Mam nadzieję, że to działa dla ciebie.

<dependencies> 
    <dependency> 
     <groupId>com.google.cloud</groupId> 
     <artifactId>google-cloud-pubsub</artifactId> 
     <version>0.8.0</version> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>3.0.0</version> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      <executions> 
       <execution> 
        <id>assemble-all</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build>