私はゲームとプレーヤーの2つのリソースを持っていますが、どちらもクラッシュ機能を備えています。 これらは同じサーバーレスサービスに含まれていますか?私はそれらを分けたいですが、私はどのようにそれらを同じapiゲートウェイに入れますか?サーバーレスフレームワークv1 - 1つのサービス内の複数のリソース
答えて
サーバーレスフレームワークプロジェクトは、単一のAPIゲートウェイを展開します。したがって、異なるAPIゲートウェイに存在させたい場合は、別々のサーバーレスフレームワークプロジェクトが必要です。
作成しているサービスのサイズによっては、それは意味をなさないか、そうでないかもしれません。
2つのAPIゲートウェイを上位にマージするには、APIゲートウェイのカスタムドメインを使用し、異なるAPIゲートウェイとステージへのパスに基づいてリクエストをプロキシすることができます。
この例では、同じサーバーレスフレームワーク内にそれらを保持したいと考えています。論理を分離するためにplayer.js
とgame.js
という2つのファイルをsrc/controllers
に作成します。
次のYAMLファイル
functions:
player_info:
handler: src/controllers/player.info
events:
- http:
path: player # path in the url
method: get
player_create:
handler: src/controllers/player.create
events:
- http:
path: player # path in the url
method: post
player_delete:
handler: src/controllers/player.delete
events:
- http:
path: player # path in the url
method: delete
game_info:
handler: src/controllers/game.info
events:
- http:
path: player # path in the url
method: get
game_create:
handler: src/controllers/game.create
events:
- http:
path: player # path in the url
method: post
game_delete:
handler: src/controllers/game.delete
events:
- http:
path: player # path in the url
method: delete
とセットアップサーバレスは、あなたが何をしたいことの一つの方法は、ラムダを展開するサーバレスを使用することですできますが、手動でラムダにエンドポイントをリンクするAPIゲートウェイを設定します。 https://serverless.com/framework/docs/providers/aws/guide/services/
それは述べて:ここに記載されたサーバレスで制限はあり
を現在は、すべてのサービスはAWS API Gatewayの個別のREST APIを作成します。 AWS API Gatewayの制限により、1つのREST APIにつき1つのカスタムドメインしか作成できません。大きなREST APIを作成する予定の場合は、この制限に注意してください。また、修正は作業中であり、最優先事項です。
私たちの経験では、私たちは、クライアントに異なるAPIとルーティングオブジェクトを持つサービスを管理しています。
同じサーバーレスサービスであるべきかどうかを判断するには、モデリングを開始する必要があります。私たちの場合、次の質問に答えます:
- エンティティは関連していますか?
- エンティティとメソッドは同じレートで変更されますか?
- 消費者は、もう一方を消費せずに1組のエンティティを消費するでしょうか?
ゲームを変更すると、プレーヤーなどを変更する予定ですか?
このリンクは、その答えのお手伝いをすることができます:https://martinfowler.com/articles/microservices.html
- 1. VPC内のVPC外部のAWSリソースにアクセスする - サーバーレスフレームワーク
- 2. Azureでホストされている1つのサービスとしての複数のリソース
- 3. 複数のfhirリソースを1つのリソースで囲む
- 4. 1つのexeで複数のWindowsサービス
- 5. Jenkins:1つの共有リソースを持つ複数のジョブ
- 6. Kubernetes:複数のサービスを1つの外部エンドポイントにマップする
- 7. Angularjs - サービスとして$リソース、複数のURL
- 8. WCF 1つのサービスまたは複数のサービス
- 9. 1つのテストケース内の複数のページオブジェクト
- 10. 1つのクラスタ内の複数のJChannels
- 11. PropelORM v1複数のデータベース
- 12. 1つのページ内に複数のEvals
- 13. 1つのサイトマップファイル内に複数のサイトマップ
- 14. 複数のネームスペースにバックエンドkubernetesサービスを持つ入力リソース
- 15. 1つのリソースの複数の親MODx Revo
- 16. AngularJS:1サービス複数のモジュール
- 17. 1つのリクエストから複数のリソースをキャッシュする
- 18. 1つのサービスを持つAngularJS複数のコントローラ:非同期エラー
- 19. 1つのサービスホスト内で複数のサービスをホストしていますか?
- 20. RESTfulサービスで1回のリクエスト中に複数のリソースを削除する
- 21. Kubernetesの1つのサービスへの複数の展開「ワイヤ」
- 22. 複数のUIサービスを1つに持つSpring Cloud
- 23. 複数のWindowsサービス、1つのインストーラー、依存関係の削除
- 24. 異なるリソースと設定ファイルを持つ1つのプロジェクトの複数のプロジェクト
- 25. 1つのボットで複数のQnAサービスを使用する
- 26. WCF 1つのサービスに対する複数のOperationContracts
- 27. 複数のangular.jsアプリ間で1つのサービスを共有
- 28. 1つのWCFサービスで複数の契約をホストする
- 29. 複数のサービスを1つのトランスポートで使用したい(Thrift)
- 30. MULE ESB:複数のWebサービスを1つのクライアントにバインドする
ですから、彼らは2つの別々のプロジェクトになりたいですか?なぜ、Serverlessプロジェクトの異なるディレクトリに関数を配置するだけではないのですか? – arjabbar