2016-11-22 11 views
2

私は2つの非常に簡単なサービスを設定しています(Pythonで)Googleのアプリケーションエンジンで。私は、私のexampleプロジェクトのdefualtサービスとしてしばらく稼働していたサイトを持っていて、別のサービスを展開したばかりなので、fooと呼ぶことができます。私はデフォルトサービスのためにDNS転送を行っていますので、私はexample.com(私はこの仮説的なシナリオで所有しています)に行き、自分のデフォルトサービスを見ることができます。私はfoo.example.appspot.comに行くことができ、URLで動作する私のfooサービスを見てください。ドメインをGoogle App Engineサービスで指すことはできますか?

私も別のドメインを登録しました。foo.comとしましょう。私が欲しいのはfoo.comが私のfoo.example.appspot.comサービスを利用することです。問題をより巧妙にするには、foo.comにはそれ自身のサブドメインがたくさんあるので、私もfooサービスに行くのにx.foo.comが必要です(さらにx.y.foo.comでも理想的でしょうが、別の文字を置換するだけで、x-y.foo.comかその行に沿ったものになります)。

私はウェブデベロッパー(これは正直なところこの単純なプロジェクトのための寛大な説明です)には新しかったですが、Iv'eは読書やグーグルをしばらく過ごしましたが、これに対する解決策は見つかりませんでした。役に立った私の最後の手段は、2つのサービスをアンインストールすることです(もしあれば)。それをすべて1つの大きなmain.pyにバンドルします。ドメインによって異なる方法でルーティングされ、両方のドメインをdefaultサービスで指定します。これの大きな欠点は、私はすでにサービスを使って作業していることです(これはよりよいアプローチのようです)。

私はスケーリングが実際には問題ではないので(ほとんどのことについて学ぶのは面白いですが)、ごく少数のユーザーを獲得することを期待しています。

EDIT:

dispatch: 

    - url: "foo.com" 
    module: foo 

    - url: "*.foo.com" 
    module: foo 

が、私はappcfg.py -A <project_id_here> update_dispatch .を実行すると、それは

Error parsing yaml file: 
Unable to assign value 'foo.com' to attribute 'url': 
invalid url 'foo.com' 
    in "./dispatch.yaml", line 3, column 10 

答えて

1

はい、それあるべきと言う:

は次のようにこの問題を解決するためにdispatch.yamlファイルを作成しようとしました可能。私は実際には2つの異なるトップレベルドメインを使用しませんでしたが、開発コンソールは2番目のドメインを受け入れる準備ができているようです(2番目のドメインを所有していないので実際にはチェックできません)。手順は、Adding a custom domain for your applicationに従ってください。

foo.comドメインには既にサブドメインが使用されているため、サブドメインの上/にワイルドカードを使用することはできません。目的のサブドメインを指定する必要があります。

この手順では、(サブ)ドメインのみをアプリ全体にマッピングし、個々のサービスやモジュールにはマッピングしません。特定のサブドメインを対応するモジュール/サービスにルーティングするには、dispatch fileも使用する必要があります。ここでは、https://stackoverflow.com/a/32103486/4495081https://stackoverflow.com/a/34111170/4495081の例を見つけることができます(最後のモジュールには、モジュールがカスタムドメインで動作するためのルール(appspot.comおよびローカル開発サーバー)があります)。

+0

ディスパッチファイルは欲しいもののように見えますが、私が望むマッピングを設定できませんでした(私の編集を参照してください)。 '' fooを使って試してみました。私は2番目のリンクが必要なものを持っているかもしれないと思います。 – stokastic

+0

いいえ、私はできません。 2番目のドメインfoo.comをサービスにルーティングする例を見つけよう – stokastic

1

答えの中のリンクに沿って動作するようになった。

dispatch: 

    - url: "foo.com/*" 
    module: foo 

    - url: "*.foo.com/*" 
    module: foo 
+0

複数のトップレベルドメインを1つのアプリケーションにマップできるという私の理論を確認してくれてありがとう:) –

関連する問題