2017-06-09 30 views
1

WindowsのコマンドラインからWindowsドメインアカウントを使用してgsutilコマンドを正常に実行できます(サービスアカウントキーの設定など)。 CmdExecタスクを使用してSQLエージェントジョブから同じコマンドを実行しようとすると、ジョブがハングアップして完了しません。ロギングが見えないので、それが何を待っているのか分かりません。 gsutilコマンドを手動で実行するために使用する同じプロキシユーザーで実行するようにジョブをセットアップしました。SQL Serverエージェントジョブとgsutil

どのように私はこれを動作させるか、より多くのログを表示する方法を得ることができますか?

答えて

1

スタンドアロンのgsutilを使用していますか?または、Cloud SDK(gcloud)のインストールの一環としてそれを入手しましたか?

ジョブが長時間ハングした場合、複数回再試行してもスタックが停止する可能性があります。これがケースであるかどうかをテストするには、あなたは非常に小さいことがnum_retriesオプションを設定することができますが、上記の0(例えば1)あなたの.botoファイルまたはこのオプションを経由して、コマンド引数のいずれか:

gsutil -o 'Boto:num_retries=1' <rest of command here...> 

二つ目(少なくともgcloudに付属していないgsutilのバージョンでは)gsutilはデフォルトでホームディレクトリ内のboto設定ファイル(使用する資格情報を指定します)を探します。別のユーザーとしてgsutilを実行している場合(おそらくSQLエージェントジョブが専用のユーザーとして実行されていますか?)、.botoファイルがそのユーザーのホームディレクトリを検索します。 gcloudバージョンにも同じことが適用されます - gcloudは、それを実行するユーザーに基づく資格情報を使用します。これを避けるには、.botoファイルを読み込み権限がある場所にコピーし、環境変数BOTO_CONFIGをgsutilを実行する前にそのパスに設定します。

set BOTO_CONFIG=C:\some\path\.boto && gsutil <rest of command here...> 

注:あなたが通常使用していることを確認のboto設定ファイルでないなら、あなたはgsutil version -lを実行し、表示する行を見て、見つけることができCMDシェルから、これは次のようになりあなたの設定パス。

+0

ありがとうございます。 BOTO_CONFIGが問題であることが判明しました。 – jimmy

関連する問題