2012-01-05 4 views
0

私はかなり単純なアプリケーションを持っています。私がすることの1つは、新しいウィジェットを作成するときです。タスクキューにタスクを追加してウィジェットのqrコードイメージを取得し、それをblobに保存します。タスクがバックエンドターゲットでキューに追加されたときのログインエラー

私のように定義されたキューがあります、私のコードで

handlers: 
- url: /tasks/fetchimage 
script: worker.py 
login: admin 

:app.yamlをの

backends: 
- name: worker 
    options: dynamic 
    class: B1 

スニペット:私のように定義されたバックエンドを持って

queue: 
- name: workqueue 
    target: worker 
    rate: 5/s 

を次のようなウィジェットが作成されます。

"queue_name =" workqueue "をコメントアウトすると、すべて正常に動作します(バックエンドには流れないデフォルトのキューを使用します)。コメントを削除すると、ログに次のエラーが表示されます。

0.1.0.2 - - [04/Jan/2012:19:05:29 -0800] "GET/tasks/fetchimage?design_id = 9034 HTTP/1.1 "302 0
...

URLにユーザーログインが必要なため、リクエストが失敗しました。 App Engine内で呼び出されるリクエスト(タスクキューなどのオフラインリクエストやXMPPや受信メールなどのウェブフック)では、URLに管理者ログイン(またはログインなし)が必要です。

何か不足していますか?私はapp.yaml設定をバックエンドに適用すると仮定します。この仮定は間違っていますか?

答えて

2

バックエンドハンドラからlogin: adminを削除し、ユーザーがそのURLにアクセスできないようにするには、バックエンドがプライベートであることを確認する必要があります。

詳細については、backendsのドキュメントを参照してください。

+0

あなたの答えをありがとう。ハンドラに 'login:admin'を追加してバックエンドハンドラを非公開にしたと思いました。バックエンドはデフォルトではプライベートです。あなたは精緻化できますか? –

+0

ああ、別のもの。テストするために 'login:admin'を削除しましたが、それは役に立ちませんでした。 –

+1

私は、バックエンドがアプリケーションの残りの部分から別々に更新されなければならないことに気付きませんでした。私はあなたがバックエンドを一度(作成するために)「更新」したと思って、それ以降のすべてのappcfg更新は、表と裏の両方を更新します。一度私はバックを更新し、物事は働き始めた。ご協力いただきありがとうございます。 –

関連する問題