Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-895

Transport.newStorageClient requires credentials

Details

    • Bug
    • Status: Resolved
    • P2
    • Resolution: Fixed
    • None
    • 0.4.0
    • sdk-java-core

    Description

      Transport.newStorageClient requires credentials, even if those aren't needed.

      Impact: Examples use publicly accessible files on Google Cloud Storage, however reading those is still requiring the user to authenticate with Google Cloud Storage.

      java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:497)
      at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.RuntimeException: Unable to get application default credentials. Please see https://developers.google.com/accounts/docs/application-default-credentials for details on how to specify credentials. This version of the SDK is dependent on the gcloud core component version 2015.02.05 or newer to be able to get credentials from the currently authorized user via gcloud auth.
      at org.apache.beam.sdk.util.Credentials.getCredential(Credentials.java:123)
      at org.apache.beam.sdk.util.GcpCredentialFactory.getCredential(GcpCredentialFactory.java:43)
      at org.apache.beam.sdk.options.GcpOptions$GcpUserCredentialsFactory.create(GcpOptions.java:264)
      at org.apache.beam.sdk.options.GcpOptions$GcpUserCredentialsFactory.create(GcpOptions.java:254)
      at org.apache.beam.sdk.options.ProxyInvocationHandler.returnDefaultHelper(ProxyInvocationHandler.java:549)
      at org.apache.beam.sdk.options.ProxyInvocationHandler.getDefault(ProxyInvocationHandler.java:490)
      at org.apache.beam.sdk.options.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:152)
      at com.sun.proxy.$Proxy52.getGcpCredential(Unknown Source)
      at org.apache.beam.sdk.util.Transport.newStorageClient(Transport.java:148)
      at org.apache.beam.sdk.util.GcsUtil$GcsUtilFactory.create(GcsUtil.java:96)
      at org.apache.beam.sdk.util.GcsUtil$GcsUtilFactory.create(GcsUtil.java:84)
      at org.apache.beam.sdk.options.ProxyInvocationHandler.returnDefaultHelper(ProxyInvocationHandler.java:549)
      at org.apache.beam.sdk.options.ProxyInvocationHandler.getDefault(ProxyInvocationHandler.java:490)
      at org.apache.beam.sdk.options.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:152)
      at com.sun.proxy.$Proxy52.getGcsUtil(Unknown Source)
      at org.apache.beam.sdk.util.GcsIOChannelFactory.match(GcsIOChannelFactory.java:43)
      at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:283)
      at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:195)
      at org.apache.beam.sdk.runners.PipelineRunner.apply(PipelineRunner.java:76)
      at org.apache.beam.runners.direct.DirectRunner.apply(DirectRunner.java:226)
      at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:400)
      at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:323)
      at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:58)
      at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:173)
      at org.apache.beam.examples.WordCount.main(WordCount.java:195)
      ... 6 more
      Caused by: java.io.IOException: The Application Default Credentials are not available. They are available if running on Google App Engine, Google Compute Engine, or Google Cloud Shell. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
      at com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.getDefaultCredential(DefaultCredentialProvider.java:98)
      at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.getApplicationDefault(GoogleCredential.java:213)
      at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.getApplicationDefault(GoogleCredential.java:191)
      at org.apache.beam.sdk.util.Credentials.getCredential(Credentials.java:121)
      ... 30 more

      Attachments

        Issue Links

          Activity

            People

              peihe0@gmail.com Pei He
              frances Frances Perry
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: