アプリ環境を構成する
Overview
アプリ環境は、開発ワークフローを整理し、コードを効果的に再利用する方法です。 アプリ環境 を使用して、グローバル構成値の異なる複数のバージョンを定義し、アプリの現在の環境を変更することでそれらを切り替えることができます。
App Services は、それぞれが開発ワークフローのステージを表す一連の組み込み環境名をサポートしています。
""
"development"
"testing"
"qa"
"production"
環境値
それぞれの環境について、その環境がアクティブな場合にアプリケーションで使用できる環境値のセットを定義できます。
たとえば、API のbaseUrl
構成には、新機能を開発するか、本番に配置するかによって、異なる値を使用する場合があります。
環境の値は、単一の JSON オブジェクトとして保存されます。 フィールド名と対応する値を任意に設定できます。
フィールド名を使用して、現在の環境から値にアクセスできます。
関数でcontext.environmentを使用するようになりました。
ルール式で
%%environment
を使用する。アプリの構成ファイルでテンプレート構成を使用します 。
環境の使用方法
環境タグはそれぞれ、開発プロセスの特定のステージを表します。 環境ごとに個別のアプリを定義できます。各アプリは同じ構成ファイルのセットを使用しますが、環境タグは異なります。 方法については、「アプリをコピーする 」を参照してください。
たとえば、一般的な開発プロセスには、 development
、 testing
、 production
の 3 つの開発ステージがあります。 各ステージに個別のアプリを使用し、アプリごとに異なる環境値を使用できます。
また、一意のアプリケーションを使用して、個々の機能ブランチをテストすることもできます。 たとえば、開発者が機能ブランチを提供するコアdevelopment
アプリがあるとします。 機能ブランチがテストに移行する場合は、代わりにコアのtesting
アプリを使用できます。
環境を CI/CD ワークフローに組み込む方法については、「 CI/CD パイプラインを設定する 」を参照してください。 実際のアプリケーションのテスト、デプロイ、およびその他のタスクを管理する完全な例については、 Githubアクションを使用して App Services アプリ用の CI/CD パイプラインを構築する方法 を参照してください。
始める前に
Atlas UI でアプリ環境を定義するには、次のものが必要です。
プロジェクト所有者の権限を持つ MongoDB Atlas アカウント。 無料アカウントのサインアップ方法については、「 Atlas の使用 」を参照してください。
CLI でアプリ環境を定義するには、次のものが必要です。
プロジェクト所有者の権限を持つ MongoDB Atlas アカウント。 無料アカウントのサインアップ方法については、「 Atlas の使用 」を参照してください。
MongoDB Atlas Admin APIの公開キーと秘密キーのペア。 App Services Admin API を操作するには、API キーにプロジェクト オーナーの権限が必要です。
ローカル システム
PATH
にインストールおよび追加された App Services CLI のコピー。 詳しくは、「 App Services CLI のインストール 」を参照してください。アプリのクライアント アプリ ID。 これは、アプリ名を含む一意の string です。例:
"myapp-abcde"
。 アプリ ID を見つける方法については、 「 アプリのメタデータを取得する 」を参照してください。
Admin API を使用してアプリ環境を定義するには、次のものが必要です。
プロジェクト所有者の権限を持つ MongoDB Atlas アカウント。 無料アカウントのサインアップ方法については、「 Atlas の使用 」を参照してください。
MongoDB Atlas Admin APIの公開キーと秘密キーのペア。 App Services Admin API を操作するには、API キーにプロジェクト オーナーの権限が必要です。
アプリの内部 ObjectId 16x string と、アプリを含む Atlas プロジェクトのプロジェクト ID。 これらを見つける方法については、 「 アプリのメタデータを取得する 」を参照してください。
手順
アプリの最新バージョンを取得する
アプリの構成ファイルのローカル コピーを取得します。 アプリの最新バージョンを取得するには、次のコマンドを実行します。
appservices pull --remote="<Your App ID>"
また、UI または管理 API からアプリケーションの構成ファイルのコピーをエクスポートすることもできます。 方法については、「アプリをエクスポートする 」を参照してください。
1 つ以上の環境を定義する
/environments
ディレクトリには、サポートされている環境タグごとに.json
ファイルが含まれています。 各ファイルは、対応する環境のすべての環境値を定義します。
App Services は次の環境タグをサポートしています。
""
"development"
"testing"
"qa"
"production"
使用する環境ごとに ファイルを開きます。 各ファイルで、値の名前をその環境内の値にマッピングするvalues
サブドキュメントにエントリを追加します。
例
次の構成では、 production
環境とdevelopment
環境でbaseUrl
環境値を定義します。
{ "values": { "baseUrl": "https://example.com" } }
{ "values": { "baseUrl": "https://dev.example.com" } }
MongoDB Atlas ユーザーの認証
MongoDB Atlas API キー ペアを使用して、管理ユーザー認証エンドポイントを呼び出します。
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
認証に成功すると、レスポンス本文にはaccess_token
値を持つ JSON オブジェクトが含まれます。
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
access_token
は App Services Admin API へのアクセスを許可します。 すべての管理 API リクエストのAuthorization
ヘッダーに Bearer トークンとして含める必要があります。
環境値を定義する
環境値の作成エンドポイントを呼び出すことで、アプリの環境値を定義できます。 各環境値には名前と、環境タグを環境内の値にマッピングするvalues
オブジェクトがあります。
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/environment_values/{environmentValueId} \ -H 'Authorization: Bearer <access_token>' \ -d '{ "name": "myEnvironmentValue", "values": { "none": "alpha", "development": "beta", "testing": "gamma", "qa": "delta", "production": "epsilon" } }'
アプリ環境を設定する
アプリ環境の設定エンドポイントを呼び出すことで、アプリの環境タグを設定できます。
curl -X PUT \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/environment \ -H 'Authorization: Bearer <access_token>' \ -d '{ "environment": "production" }'