2017-06-08 5 views
0

で作成された場合、これは私が https://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/courses/data_analysis/lab2/python/grepc.py から、簡単なスクリプトを実行しようとしています発生する可能性があります(このコードはGoogleのストレージに接続するデータフローパイプラインである)GoogleクラウドシェルHttpAccessTokenRefreshError:VMはなしサービスアカウントまたはスコープ

先週働いた。しかし、私が今それを実行しているとき、私はいつも同じエラーを受け取ります:

> Traceback (most recent call last): 
    File "grepc.py", line 50, in <module> 
    run() 
    File "grepc.py", line 44, in run 
    | 'write' >> beam.io.WriteToText(output_prefix) 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/io/textio.py", line 391, in __init__ 
    skip_header_lines=skip_header_lines) 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/io/textio.py", line 89, in __init__ 
    validate=validate) 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/io/filebasedsource.py", line 105, in __init__ 
    self._validate() 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/options/value_provider.py", line 109, in _f 
    return fnc(self, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/io/filebasedsource.py", line 165, in _validate 
    match_result = FileSystems.match([pattern], limits=[1])[0] 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/io/filesystems.py", line 131, in match 
    return filesystem.match(patterns, limits) 
    File "/usr/local/lib/python2.7/dist-packages/apache_beam/io/gcp/gcsfilesystem.py", line 138, in match 
    raise BeamIOError("Match operation failed", exceptions) 
apache_beam.io.filesystem.BeamIOError: Match operation failed with exceptions {'gs://{MY_BUCKET}/javahelp/*.java': HttpAccessTokenRefreshError(u' This can occur if a VM was created with no service account or scopes.',)} 

私はこれを解決する方法がありません。そして、多くのグーグルは何も助けてくれませんでした。

+0

GCP Compute Engineのインスタンスでこのエラーが発生していますか? –

+0

私はデフォルトのクラウドシェルで実行しています。 – Tina

答えて

0

エラーメッセージの{MYBUCKET}がリテラルではなく、バケット名で置き換えられているとします。

これをGCE VMインスタンスから実行している場合は、このコマンドを実行して出力をここに貼り付けることができますか?コンピューティングインスタンスは、上記{インスタンス名} {--zoneインスタンスゾーン}

を記述

のgcloudはあなたにどのようなサービスアカウントとあなたのVMインスタンスが持つスコープを言うだろう。そしてまた:

のgcloudプロジェクトが取得-IAMポリシー{プロジェクト名}

をこれはあなたのプロジェクトが持つアカウントどのようなサービスを教えてくれます。プロジェクト番号や機密情報と思われる情報を一掃してください。

+0

こんにちはデビッド、はいMYBUKCETは存在する私のバケットに置き換えられます。私はGoogleのクラウドシェルでコマンドを実行しています。私はインストールパッケージをインストールすることを意味し、それだけです。だから私は余分なVMを使用していないと私はまた私が許可を与えているサービスアカウントを認識していない。これは大きなプロジェクトで、いくつかのサービスアカウントがあります。どちらを確認すべきかを知る方法はありますか? – Tina

+0

私は、このスクリプトを実行してhttps://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/courses/data_analysis/lab2/python/grep.pyが動作することを追加する必要があります。しかし、Google Stargeへの接続は、上記のエラーを引き起こします。まだ何をすべきかわからない。助けてくれてありがとう! – Tina

+0

指定したコマンドの出力を貼り付けることができますか(機密情報がすべて消去された状態で)?私はちょうどあなたが正しいスコープとサービスアカウントを持っていることを確認したい。 –

関連する問題