Google App EngineでのDjangoアプリケーションのサポート

Googleは最近、クラウド用のCloud SQL発表しました。 しかし、最初はdjangoのサポートはありませんでした。2月上旬には、djangoでのアプリケーションの実行をサポートするApp Engine 1.6.2がリリースされました。 app-engine-patchとdjango-nonreを飛び回るのを忘れて、bigtableの上にリレーショナルデータベースをエミュレートしてみてください。



django 1.2とCloud SQLモジュールがボックスから提供されます。zipアーカイブにパッケージをパッキングする松葉杖については忘れることができます。 クラウドでシンプルなアプリケーションを取得するために必要な手順は次のとおりです。

  1. まず、 Google API Consoleを介してCloud SQLへのテストアクセスをリクエストする必要があります 。 3日間アクセスが許可された後、コンソールでサービスを管理するためのアクセスを取得します。







  2. アクセスを取得すると、基本的にmysqlコンソールコマンドへの通常のアクセス権が与えられ、データベースを作成できます。







  3. ここで、通常のGAEアプリケーションを作成します。その中に、登録する必要があるdjango + app.yamlファイルにWebアプリケーションがあります。

    application: appname version: 1 runtime: python27 api_version: 1 threadsafe: true libraries: - name: django version: "1.2" builtins: - django_wsgi: on
          
          





  4. djangoアプリケーションがCloud SQLにアクセスできるようにするには、DATABASESの設定に登録するだけです。

     DATABASES = { 'default': { 'ENGINE': 'google.appengine.ext.django.backends.rdbms', 'INSTANCE': 'my_project:instance1', 'NAME': 'my_database', } }
          
          







これは、アプリケーションを準備するために行う必要がある主なことです。 syncdbを作成する最初の試みで、承認するように求められます。そのためには、「API Access」タブのGoogle APIコンソールからトークンを取得する必要があります%USERPROFILE%\.googlesql_oauth2.dat



。 Cloud SQLのsyncdbで、アプリケーションに必要な基本スキームが作成され、フィクスチャがあればロードされます。 開発はローカルマシンで行われますが、アプリケーションはsqlite3データベースで動作します。 その後、アプリケーションを安全にクラウドにプッシュできます。



私見



GoogleはSQLデータベースを提供して正しいステップを踏んだと思います。 彼らはクラウドで撮影することができませんでした。 はい、当時は面白そうに見えましたが、誰もがすぐに制限が大きすぎることを認識し、アプリケーションをどこにでも転送するためにグーグルのサービスを手に入れるのは非常に難しいと気づきました。 はい、アマゾンのサービスへの移行のためのツールがありますが、それらは保証を与えるものではなく、いずれの場合も、転送にN番目の工数が必要になります。 GAEで動作する大規模なサイトは1つもありません。オンラインストアの興味深いプロジェクトがありましたが、そのサイトは生きているよりも死んでいる可能性が高いです。 大規模なプロジェクトはGAEを避けるか、それについて考えさえしません。近くにAmazonがあり、その上にアーキテクチャを構築できる場合、必要に応じて簡単に移行できます。

小規模なものを必要とする人にとっては、ブログや名刺サイトなどを立ち上げることは非常に困難であり、専門サービスでこれを簡単に実行できるのに、なぜGAEの開発機能を理解するのでしょうか。

ただし、Cloud SQLのリリースにより、状況は少しでも変わる可能性があります。 これで、GAE上で中程度の複雑さのdjangoサイトを安全に実行し、ドメインをそれに固定し、サーバー管理を忘れることができます。 GAEは純粋なpythonでのみ記述されたライブラリをサポートすることを忘れないでください。アプリケーションからのhttpリクエストの制限だけでなく、すべてのモジュールも忘れてください。 さらに、GAE APIを使用してファイルをストレージにアップロードし、メールを送信し、memcacheにキャッシュする必要がありますが、これらの制限があっても、「シンプルな」サイトをデプロイするためのほとんどのニーズに対応します。



参照:




All Articles