5

gcloudアプリを使用してアプリをデプロイします。それは時間のカップルのため正常に動作して、ジョブは、以下の情報をログに立ち往生:GAEは401(試行1/2)のためにリフレッシュする

03:54:59.748 Refreshing due to a 401 (attempt 1/2) 
03:58:44.816 Refreshing due to a 401 (attempt 1/2) 
03:58:55.781 Refreshing due to a 401 (attempt 1/2) 
03:58:56.317 Refreshing due to a 401 (attempt 1/2) 

は、それが内部serviceNameのからログに記録されているように思える:「appengine.googleapis.com」展開のアプリが読み込み

いくつかのファイルをGCSから取得し、google pubsubを使用して計算済みの指標を公開します。私は認証するために資格情報を使用するGoogleのクライアントAPIライブラリを使用します。

credentials = GoogleCredentials.get_application_default() 
    if credentials.create_scoped_required(): 
     credentials = credentials.create_scoped(['https://www.googleapis.com/auth/devstorage.read_only) 
    http = httplib2.Http() 
    credentials.authorize(http) 
    return discovery.build('storage', 'v1', http=http) 

同様のpubsubのスニペットも同様です。 401のステータスコードを示す情報ログで永遠に要求が停止しているような問題に遭遇したことがあります。なぜリクエストがタイムアウトして失敗するのかは分かりません。任意の回避策?

+0

おすすめの[Google Cloud idiomatic libraries](https://cloud.google.com/apis/docs/cloud-client-libraries)を使用しない具体的な理由は何ですか? – Jofre

答えて

0

401は不正なエラーです。これは、OAuthベアラトークンが無効であり、リフレッシュトークンを使用してリフレッシュする必要があることを意味します。あなたが説明するタイムラインはthe duration of the bearer tokensと一致します。

私はcloud idiomatic librariesを使用します。またはGAE標準を使用している場合はthe appengine libraries directlyです。これらのライブラリは、認証自体を処理します(有効期限が切れたときにトークンをリフレッシュするなど)。さらにApp Engine内で使用するための最適化を追加します。

関連する問題