拡張を含むテンプレート構成の作成
Atlas App Services は、%()
構成ファイル 内の%%environment
のように JSON 展開を動的に解決する置換演算子( をサポートしています。展開を含む構成ファイル( App Services CLIまたはGithubを通じて)を使用して新しいアプリを作成すると、App Services は展開を自動的に解決し、解決された構成ファイルを使用してアプリを作成します。
置換演算子を使用する構成ファイルはテンプレートです。 テンプレートからアプリを作成すると、そのアプリは、アプリが作成された時点で解決された値を反映する構成ファイルのコピーを使用します。 同じテンプレートを使用して、異なる構成を持つ複数のアプリを作成できます。
重要
置換演算子は現在、string 値を持つ構成フィールドでのみサポートされています。 ブール値、数値、オブジェクト、または配列値には展開を使用できません。
たとえば、 展開を使用してclusterName
フィールドをテンプレート化できます。
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": false } }
ただし、 wireProtocolEnabled
フィールドはブール値であるため、展開を使用してテンプレートを使用することはできません。
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "Cluster0", "readPreference": "primaryPreferred", "wireProtocolEnabled": %(%%environment.values.wireProtocolEnabled) } }
Define a Template
展開置換の定義
%()
置換演算子と%%environment
展開を使用して、構成ファイルから任意の環境値を参照できます。 テンプレートを作成する構成ファイルごとに、展開を定義します。
例
mongodb-atlas
データソースの次のテンプレート構成ファイルは、展開を使用して環境に基づいてclusterName
を動的に解決します。
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "%(%%environment.values.clusterName)", "readPreference": "primaryPreferred", "wireProtocolEnabled": true } }
新しいテンプレート アプリの作成
テンプレート化された構成ファイルを使用して、選択した環境に新しいアプリを作成できるようになりました。
例
Atlas App Services はテンプレート構成を使用して、インポート時に新しく解決された構成ファイルを生成します。
appservices push
{ "name": "mongodb-atlas", "type": "mongodb-atlas", "config": { "clusterName": "atlas-development", "readPreference": "primaryPreferred", "wireProtocolEnabled": true } }
開発ワークフロー
どのアプリでも構成展開を使用できますが、最も有用なケースは、 Githubのような外部バージョン管理システムに保存されているソースコード ファイルを使用して本番アプリケーションを開発するチームです。 機能を開発したり変更をテストしたりするために、独立したアプリを作成し、拡張機能を使用して環境に基づいてアプリをカスタマイズできます。
環境が
development
に設定されている共通のテンプレートのコピーを作成します。 Github を使用している場合は、 Githubに新しいブランチを作成し、ローカル コピーをチェックアウトします。変更を加え、開発アプリに対してローカルでテストします。 アプリに加えた変更は本番アプリには影響しませんが、代替手段を設定しない限り、本番環境のデータソースとサービスの読み取りとサービスの読み取りと書き込みは引き続き可能です。
変更をコミットし、本番環境にマージします。 変更を検証して本番ブランチにマージするために、
test
環境にアプリを作成することもできます。変更がマージされたら、開発アプリを安全に削除し、関連する他のサービスをクリーンアップできます。