私はGoogle MLエンジンでTensorFlowモデルを実行しています。モデルトレーニングが終了したら、結果を含むJSON文字列をDatastoreに保存します。このために、私は次のように使用しています:Google MLエンジンとPython Datastore API '禁止:403要求には認証スコープが不十分でした。'
from gcloud import datastore
def put_json_into_datastore(json_str, project_id, entity_type):
"""
Store json string in Datastore
"""
# Instantiate the client to the project
datastore_client = datastore.Client(project_id)
# The name/ID for the new entity
name = str(datetime.datetime.now())
# The Cloud Datastore key for the new entity
entity_key = datastore_client.key(entity_type, name)
# Prepare the new entity
entity = datastore.Entity(key=entity_key)
# Get the json string into the entity
entity.update(json_str)
# Put the entity into Datastore
datastore_client.put(entity)
が、私はエラーになっています「禁断の:403要求が不十分な認証のスコープを持っていました。」 _run_module_as_main "メイン"、fnameの中で、 "/usr/lib/python2.7/runpy.py"、ライン162ファイル:
トレースバック(最新の呼び出しの最後の):ここでは完全なエラー・トレースです、loader、pkg_name)ファイル "/usr/lib/python2.7/runpy.py"、行72、_run_code run_globalsファイルのexecコード "/root/.local/lib/python2.7/site-packages/trainer /train.py put_json_into_datastore datastore_clientで、 ライン253、 "/root/.local/lib/python2.7/site-packages/trainer/data_helpers.py」、 FLAGS.entity_typeでライン243、 )ファイル"。 put(エンティティ)ファイル "/usr/local/lib/python2.7/dist-packages/ gcloud/datastore/client.py "、 行329、put self.put_multi(エンティティ= [エンティティ])ファイル" /usr/local/lib/python2.7/dist-packages/gcloud/datastore/client.py "、 行355、put_multi current.commit()ファイル" /usr/local/lib/python2.7/dist-packages/gcloud/datastore/batch.py "、 行260、コミット中 self._commit ()ファイル "/usr/local/lib/python2.7/dist-packages/gcloud/datastore/batch.py"、 行243、_commit内 self.project、self._commit_request、self._id)ファイル "/ "/ usr/local/lib/python2.7/dist-packages/gcloud/datastore/connection.py"、 行342、コミット中 _datastore_pb2.CommitResponse)ファイル "/usr/local/lib/python2.7/dist-packages /gcloud/datastore/connection.py "、_request 上げmake_exceptionにライン124、_rpcに データ= request_pb.SerializeToString()) "/usr/local/lib/python2.7/dist-packages/gcloud/datastore/connection.py" ファイル、 ライン98、 (ヘッダー、error_status.message、use_json = False)禁止:403要求の認証が不十分でした スコープ。
データストアにアクセスするには、MLエンジンのどこかにアクセス権を与える必要がありますか?
ダム質問ですが、確かに...同じプロジェクト内のデータストアとクラウドMLのエンジンジョブですか? –
@ T.Okahara yap、同じプロジェクト。 MLエンジンからStorageにファイルを保存できますが、Datastoreにアクセスすることはできません。 –