問題タブ [google-app-engine-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
94 参照

google-app-engine - GoogleAppEngine エラー ディレクトリが見つかりません

私は、私が学校に通っているときに、仕事でよく使用するサイトにアクセスするためにプロキシを機能させることに取り組んできましたが、私の学校は好きではありません..これは、ファイルをGoogleアプリエンジンにアップロードしようとしたときに発生するエラーです..


C:\Program Files (x86)\Google\google_appengine>"C:\Python27\python.exe" appcfg.p y update C:\Users\alastair\Desktop\School Files\Proxy Files\mirrorrr-master\mirrorrr-master

09:44 PM ホスト: appengine.google.com 使用法: appcfg.py [オプション] 更新 | [ファイル、 ...]

appcfg.py: エラー: ディレクトリに School.yaml 構成ファイルが含まれていません


「School.yaml」を要求している理由について非常に混乱していますが、とにかく作成しました。作成されたにもかかわらず、このエラーが表示されます。誰かが助けてくれれば、お願いします!

0 投票する
1 に答える
169 参照

python - Google プッシュ デプロイ リリース パイプラインは無効になっていますか?

Google App Engine で小さな Python アプリケーションを実行しています。しばらくの間、私は Google の push-to-deploy 機能を使用していました。この機能は、master ブランチの新しいバージョンを bitbucket git-repository にプッシュすると、アプリが自動的にデプロイされました。

最近、リポジトリの名前を変更しましたが、Google の開発者コンソールのリリース パイプラインが機能していないことに気付きました。単純なリリース パイプラインを追加する代わりに、次のメッセージが表示されました。

Jenkins を設定する方法と、GCP アプリの継続的デプロイを構成する方法については、このドキュメントを参照してください。

  • シンプルなプッシュ デプロイ ソリューションを再び利用するにはどうすればよいですか?
  • Jenkins を使用する利点はありますか? 私が理解している限りでは、Jenkins を実行する Google Compute Engine インスタンスにサブスクライブする必要があります。しかし、私は VM の保守から離れたかったのです。
0 投票する
1 に答える
54 参照

google-app-engine - Can I have GCS private isolated buckets with a unique api key per bucket?

I'd like to give to each of my customers access to their own bucket under my GCS enabled app.

I also need to make sure that a user's bucket is safe from other users' actions.

Last but not least, the customer will be a client application, so the whole process needs to be done transparently without asking the user to login.

If I apply an ACL on each bucket, granting access only to the user I want, can I create an API key only for that bucket and hand that API key to the client app to perform GCS API calls?

0 投票する
1 に答える
136 参照

python - taskqueue/deferred 内のブロブストア

taskqueue と deferred を使用して、大量のユーザー情報リストを json ファイルからデータストアにインポートしようとしています。

Userには、別のアプリからの画像 URL を含むユーザーの情報が含まれています。インポート プロセス中に、画像を取得して BLOB にアップロードする必要があります (これはテスト時に問題なく動作します)。

アップロードされた画像の blob_key を取得するのに行き詰まりました。そして、「通常の」GETリクエストハンドラー内で試したので、タスクキュー/遅延内でのみ発生すると思いますが、問題なく動作します。

これは私のハンドラです:

これは私の機能です:

トレースバックの一部:

PS: deferred の代わりに taskqueue も試しました。

編集(1):

これはトレースバックです:

0 投票する
3 に答える
3105 参照

python - AppEngine urlfetch validate_certificate=False/None が尊重されない

AppEngine 開発者 appserver で、次のようなエラーが発生します。

https自己署名証明書を使用してサーバーにこのようなフェッチを行っている場合(ほとんどの場合localhost、ssh 経由で vm にポート転送されます):

が無効な証明書で SSL が失敗することは想定していませんvalidate_certificateFalse、これは Python の 2.7.9 ポリシーが常に ssl 証明書を検証することの副作用である可能性が非常に高いです。

False(の代わりにNone) forを渡すことvalidate_certificateも機能しないことに注意してください。

この問題は、AppEngine 1.9.18 ~ 1.19.26 を搭載した OS X 10.10.2-4 上の Homebrew/XCode を介して Python 2.7.9-10 で発生します。

Google App Engine ではこれに関する問題 (例: 12096 ) がありますが、回避策を探しています。

これを回避するために私が試みたのは次のとおりです。

  1. 証明書を Mac のログイン キーチェーンに追加します (Python からではなく、ブラウザーで機能します)。

  2. app-engine-python/lib/cacerts/cacerts.txt証明書をand/orに追加します(ただし、これが機能する./lib/cacerts/urlfetch_cacerts.txtために はおそらく検証を有効にする必要がありますが、それが使用される唯一のケースであるように思われるため)。

    $ echo >> /usr/local/share/app-engine-python/lib/cacerts/urlfetch_cacerts.txt

    $ openssl x509 -subject -in server.crt >> /usr/local/share/app-engine-python/lib/cacerts/urlfetch_cacerts.txt

  3. PEP-0476回避策で ssl HTTPS チェックを無効にします。

    ssl._create_default_https_context = ssl._create_unverified_context

    の前後import ssl(1149行目あたり)google/appengine/dist27/python_std_lib/httplib.py

XCode 7/OS X El Capital の時点でのダウングレードは実用的なオプションではなくなったため、これは Mac では特に問題になります。

推奨される回避策は、開発アプリケーション サーバーが更新されるたびに適切な AppEngine コードにモンキー パッチを適用しないことです。


編集

Mac 組み込みの OpenSSL 証明書は、 SIP/rootlessness/System/Library/OpenSSLで保護されている に保存されていることに注意してください。これは、率直に言って、いじるのが面倒で、できれば維持する価値のある機能です。

を使用して、証明書が有効であることを確認しましたopenssl s_client -connect localhost:7500 -CAfile server.pem

これは、キーチェーンに追加され、ハッシュが由来する形式/usr/local/etc/openssl/certs(または自作の ssl、つまり) に追加されました。その場合、証明書を検証します (ただし、python は検証しません)。hash.#openssl x509 -subject_hash -in server.pem/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl/usr/local/Cellar/openssl/1.0.2d_1/bin/openssl s_client -connect localhost:7500

Python と openssl の自作バージョンを使用してみましたが、役に立ちませんでした。Python で以下を実行すると、常に失敗するようです。

これは、 がサーバーの証明書に設定されている場所でも失敗しSSL_CERT_FILEます (つまり、opensslコマンドが基本的にこのように機能するため、追加の手段として、SSL_CERT_PATHが に設定されている場所でも失敗します) /usr/local/etc/openssl/certs

注、はpve仮想環境であり、help(ssl)FILE/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py

_ssl.so自作のPythonの自作のopensslへのリンクをさらに確認して、実行しました:

xcrun otool -L /usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_ssl.so

返す

./Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_ssl.so:

/usr/local/opt/openssl/lib/libssl.1.0.0.dylib (互換バージョン 1.0.0、現行バージョン 1.0.0)

/usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (互換バージョン 1.0.0、現行バージョン 1.0.0)

/usr/lib/libSystem.B.dylib (互換バージョン 1.0.0、現行バージョン 1225.1.1)

実行すると、次brew info opensslのようにコメントされCAVEATSます。

CA ファイルは、システム キーチェーンからの証明書を使用してブートストラップされています。追加の証明書を追加するには、.pem ファイルを /usr/local/etc/openssl/certs に配置します。

しかし、明らかに何らかの理由で、Pythonは証明書を見つけるために自作のopensslアルゴリズムを使用していません。

そのため、ドキュメントとキーチェーンで指定された OpenSSL ディレクトリにある証明書を Python 標準ライブラリが検証しない理由について、私は途方に暮れています ( と の両方.pem.p12形式で、 を「常に信頼」しSecure Sockets Layer (SSL)ます)。

0 投票する
0 に答える
41 参照

google-app-engine - App Engine テスト用の負荷を作成する

アプリエンジンベースのアプリケーション用にデータを生成してロードするツールを実装しています。要件は、データをエンドポイントにポストすることです。

Google の負荷テストの記事で紹介されているソリューションに基づいて初期の Python バージョンを実装し、現在、コンピューティング エンジンの仮想マシンでスクリプトを実行しています。この時点で、空のエンドポイントに投稿するときに、50 のスレッドを使用して 1 秒あたり約 1800 のリクエストを取得できました。50 を超えてスレッドを増やしても、1 秒あたりのリクエスト数は増えないようです。

現在、より多くのリクエスト/秒を作成するために、より多くのコンピューティング エンジン インスタンスを作成し、複数の仮想マシンから同時にスクリプトを実行しています。

私の質問は、これにはもっと良い方法があるということです。これを達成するための推奨または最適な方法は何ですか?

0 投票する
1 に答える
310 参照

google-app-engine - Appengine ユーザー API: create_login_url にリダイレクト: 「NoneType」オブジェクトに属性のニックネームがありません

私は App Engine を初めて使用します。google.appengine.api.users モジュールが提供する単純なユーザー API を使用してユーザー ログインを作成したい

しかし、ログイン URL へのリダイレクトは行われていないようです。「NoneType」オブジェクトには属性のニックネームがありませんというエラーが表示されます

私のコードの問題は何ですか? else 句の下の user.nickname() 呼び出しを削除すると、正常に動作します...

0 投票する
1 に答える
62 参照

javascript - HTML 5 Geolocation データを Google App Engine に保存するにはどうすればよいですか?

ユーザーが投稿を作成でき、近くにいる他のユーザーからの投稿のみを表示できる Web アプリに取り組んでいます。これがどのように機能するかを私が想像する方法は次のとおりです。

ユーザーから地理位置情報データを要求 --> ユーザーの地理位置情報データをサーバー上のファイルに保存 --> 保存されている他の座標がユーザーの緯度/経度の特定の範囲内にあるかどうかファイルをチェック --> 範囲内の投稿のみを表示

ユーザーの緯度と経度のデータを保存するにはどうすればよいですか? GAE サイトのバックエンドは Python で作成されています (重要な場合)。

0 投票する
1 に答える
410 参照

javascript - ui ルーターを使用してデフォルト以外の状態に移動する

私はこれを数日間断続的に理解しようとしてきましたが、インターネットで読んだことはすべて、うまくいくはずだと言っています. アプリのルーティングは、アプリを使用している限り問題なく機能しますが、URL をコピーして貼り付けようとすると、状態が失われ、ホームにリダイレクトされます。

* 編集 app.yaml が「何があっても index.html を処理する」ためだと思い始めています。app.yaml が何をしても情報が取り除かれるように見えます。そのため、$state の URL は「」です。 編集 *

URLに関係なくindex.htmlを返すようにサーバーを構成しているため、ブラウザーバーに貼り付けたURLを使用してルーティングロジックに到達しています。$state と $stateParams を挿入する実行ブロックにブレークポイントを配置すると、現在の URL が "" であることが示され、ルートで構成ブロックに到達すると、.otherwise('/') に移動してリダイレクトされますアプリの開始まで。

ここに私のapp.yamlがあります

これが私のmain.pyです。これは、Googleが提供するデフォルトです

したがって、localhost:8000 にアクセスすると、問題なくホームページにアクセスできます。リンクをクリックして他のページに移動すると、localhost:8000/a または /b などに移動します。そのリンクをコピーして別のタブに貼り付けると、localhost:8000 に移動します。実行ブロックと構成ブロックにブレークポイントを設定しましたが、そこに到達するまでに URL が変更されていないため、サーバーの問題ではないことは 90% 確信していますが、それが何であるかはわかりません。/a に移動する前に問題が発生し、/a を取得できないというエラーが返されました。そのため、サーブアップインデックスが常に変化することでそれを修正しました。そのため、サーバーを正しくセットアップしたと確信しています。

私のすべての調査からわかる限り、これは角度側でこれ以外の構成なしで機能するはずです。また、アプリ内を問題なくナビゲートできると言ったように、状態が正しく設定されているようです。

同様の問題で見つけたSOの質問だけは、何かが欠けていない限り適用されないようです。1 つは、私が修正したサーブアップ インデックスの問題に関するもので、もう 1 つは、私がそうではないと思う「/」が欠落していたものです。

最初にindex.htmlに移動せずに、ui-routerを使用して状態に直接移動するにはどうすればよいですか

URL で ui-router 状態に移動できません