0

Googleのクラウドでこれらの3つの異なる構造について混乱し、これらがどのように適合するかを理解しようとしています。Google Cloudモジュールと名前空間とサービス

まず、「モジュール」は「サービス」の古い名前です。だから私はGoogleの雲 "モジュール"についても、サービスに適用されるだろう読んだ?

名前空間とサービス/モジュールを一緒に使用しているのですか、それとも一般的には相互に排他的ですか?

が、これはこれらの事を一緒に使用する方法の良い例です。

  • 「名前空間」と複数のモジュール/サービスがそれらにアクセスすることができ、そのように私の共有リソース(ストレージ、DBの、等)を置きます。 「App Engineリクエストはどのネームスペースにもアクセスできます」ので、ネームスペースリソースはプロジェクトコンテナによってバインドされます。
  • (私は「DEV」と「PROD」プロジェクト
を持っていると思います。このすべてが環境として使用される単一の「プロジェクト」である名前空間のリソース
  • にアクセスし、「サービス」を作成します。
  • 答えて

    1

    右、サービスおよびモジュールは同じものですApp Engine Services as microservicesからこの引用の内部で実際のURLパスに注意してください:。

    App Engineのプロジェクトで

    、以前として知られ、 別々servicesとして複数microservicesを展開することができますApp Engineのモジュール

    名前空間がサービスを呼び出すことができるようjust a few APIsによってサポートされています。

    App Engineは現在、以下のAPIで名前空間をサポートしています。

    彼らは本当に/別々のスライスない株)これらのAPIが提供するデータにだけの方法であり、名前空間の境界を越えて偶発的なデータの漏洩を防ぐことができます。例えばImplementing Multitenancy Using Namespacesを参照してください。しかし、保護はアプリケーションコードと同じくらい良いことに注意してください(コードが間違った名前空間を設定しているとデータが漏れる)。

    サービスはデータ分離を提供せず、それぞれのAPIを呼び出すときにネームスペースを適切に設定することによって、ネームスペース内にあるかどうかにかかわらずデータを共有できます。だから、がデータをサービス間で共有できるネームスペースにデータを配置していません。

    プロジェクトの境界は、名前空間とサービスの両方に適用されます。しかし、プロジェクト境界(またはGoogleネットワーク外からでも、例えばHow do I use Google datastore for my web app which is NOT hosted in google app engine?など)からでもアクセスできるようにAPIとプロジェクトを設定することは可能です。

    サービスを使用する主な目的は、コード分離を得ることです。しかし、それには価格が付いています - それぞれのサービスには独自のインスタンスがあります。また、もう少し難しいのは、ドキュメントやツールでさえも少し遅れていることが多く、それらの多くは単一サービスのGAEアプリコンテキストを前提としています。

    Naming Developer Environmentsでは、環境を作成するためのサービスを使用していますが、別のプロジェクトを使用することにも言及しています。