0
Google Cloud Dataflow Java SDKをPubSub Sourceと連携させることに苦労しています。以下の最小限のコードでは、常に401(Unauthorized)エラーが返されます。私は資格情報を提供する方法を理解しようとしましたが、それを動作させる方法を見つけることができませんでした。私は事前にgcloud認証ログインを使用して、ログインしており、サブスクリプションが存在することを確認しています。次のエラーがスローされApache Beam Java SDKとPubSubソースの例
:
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java (default-cli) on project my-dataflow: An exception occured while executing the Java class. null: InvocationTargetException: com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
[ERROR] {
[ERROR] "code" : 401,
[ERROR] "errors" : [ {
[ERROR] "domain" : "global",
[ERROR] "message" : "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
[ERROR] "reason" : "unauthorized"
[ERROR] } ],
[ERROR] "message" : "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
[ERROR] "status" : "UNAUTHENTICATED"
[ERROR] }
次のように私のコードは次のとおりです。
public class MyDataflow{
public static void main(String[] args) {
PipelineOptions options = PipelineOptionsFactory.create();
PubsubOptions dataflowOptions = options.as(PubsubOptions.class);
dataflowOptions.setStreaming(true);
Pipeline p = Pipeline.create(options);
p.apply(PubsubIO.<String>read().subscription("projects/my-project/subscription/my-subscription")
.withCoder(StringUtf8Coder.of()));
// Run the pipeline.
p.run().waitUntilFinish();
}
}
あなたが代わりに ''のgcloud認証login'ののgcloud認証アプリケーションのデフォルトlogin'を使用してみましたか? –
ありがとう、あなたは正しい方向に私を指摘した。私は前にこれをやったことがありますが、GOOGLE_APPLICATION_CREDENTIALS環境変数がjson信任状ファイルの代わりにフォルダに直接設定されていました。あなたが答えとしてそれを追加するなら、私はそれを受け入れることができます。 – jimmy
これを回答として追加できますか? –