アプリのコピー
Overview
アプリの構成ファイルを再利用し、 シークレット を手動でポートすることで、既存のアプリのコピーを作成できます。
次の場合は、アプリケーションをコピーすることをお勧めします。
開発には機能ブランチを使用します。 競合を避けるために、各機能ブランチにアプリの一意のコピーを使用してください。
アプリの動作中のバージョンに対してテストを実行します。 一貫した起動状態を確保するために、テストを実行するたびにアプリをコピーすることができます。
ローカル配置モデルを使用して、同じアプリをリージョン全体のクラスターに配置します。 アプリをコピーして、複数のリージョンをローカルに提供できます。
始める前に
CLI でアプリをコピーするには、次のものが必要です。
プロジェクト所有者の権限を持つ MongoDB Atlas アカウント。 無料アカウントの登録方法については、「 Atlasを使い始める 」を参照してください。
MongoDB Atlas Admin APIの公開キーと秘密キーのペア。 App Services Admin API を操作するには、API キーにプロジェクト オーナーの権限が必要です。
ローカル システム
PATH
にインストールおよび追加された App Services CLI のコピー。 詳しくは、「 App Services CLI のインストール 」を参照してください。
Githubリポジトリの構成ファイルに基づいてアプリをコピーするには、アプリの自動Github配置を有効にする必要があります。
手順
警告
Githubの自動配置が有効になっている場合は、 App Services CLIを使用してアプリに変更をプッシュしないでください。 詳細については、「 CLI からの変更の回避 」を参照してください。
新しいアプリを作成する
新しい空白アプリを作成します。 名前を選択し、コピーしたアプリで使用する配置モデルとリージョンを設定します。 詳しくは、「アプリの作成 」を参照してください。
例
# Create the new App appservices app create \ --name "myapp-copy" \ --deployment-model "LOCAL" \ --provider-region "aws-us-west-2"
新しいアプリへのシークレットの移行
アプリの構成ファイルには、シークレットの名前や値は含まれません。
元のアプリの既存の シークレット 値にアクセスし、それらを新しいアプリに手動で追加する必要があります。 アプリにシークレットがない場合は、この手順をスキップできます。
元のアプリのシークレットを追加するには
すべてのシークレットの名前を安全な場所に保存します。 リストには実際のシークレット値は含まれませんが、新しいアプリに追加するシークレット名のリストがあると便利です。
元のアプリの各 シークレット の値を見つけます。
各シークレットを新しいアプリに個別に追加します。 方法については、「シークレットの定義 」を参照してください。
重要
構成ファイルをコピーする前にシークレットを追加する
一部の App Services 機能では、機能を定義して使用する前に 1 つ以上の シークレット を定義する必要があります。 たとえば、OAuth 認証プロバイダには、 clientSecret
値を含む Secret が必要です。
未定義のシークレットを参照する構成ファイルをプッシュすると、配置は失敗します。
構成ファイルのコピー
元のアプリの構成ファイルの最新バージョンをローカル ファイルシステムに取得します。 方法については、「アプリをエクスポートする 」を参照してください。
例
# Pull the config files for an existing App appservices pull --remote="myapp-abcde"
root_config.json
を除くすべての構成ファイルを元のアプリから新しいアプリの構成ディレクトリにコピーします。 新しいアプリのroot_config.json
を使用し、他の構成ファイルを上書きする必要があります。
例
# Copy all configuration files except for root_config.json cp -r myapp myapp-temp rm myapp-temp/root_config.json cp -r myapp-temp/* myapp-copy rm -rf myapp-temp
新しいアプリを作成する
新しい空白アプリを作成します。 元のアプリと同じ名前を選択し、コピーしたアプリで使用するバージョンに合わせて 配置モデル と リージョン を設定します。 詳しくは、「アプリの作成 」を参照してください。
作成後、新しいアプリの構成ファイルを前の手順で作成したディレクトリに保存します(まだ保存していない場合)。
例
# Navigate to the new App's directory cd myapp-copy # Create the new App. The create command saves the new # App's configuration file directory in the current directory appservices app create \ --name "myapp-copy" \ --deployment-model "LOCAL" \ --provider-region "aws-us-west-2" cp -r myapp-copy/* . rm -rf myapp-copy # Navigate back to the root of the repo cd ..
Github の自動配置を設定する
新しいアプリで、 Github の自動配置を設定して有効にします。 必ず、元のアプリではなく、新しいアプリ用に作成したリポジトリ、ブランチ、ディレクトリを指定します。
新しいアプリへのシークレットの移行
アプリの構成ファイルには、シークレットの名前や値は含まれません。
元のアプリの既存の シークレット 値にアクセスし、それらを新しいアプリに手動で追加する必要があります。 アプリにシークレットがない場合は、この手順をスキップできます。
元のアプリのシークレットを追加するには
すべてのシークレットの名前を安全な場所に保存します。 リストには実際のシークレット値は含まれませんが、新しいアプリに追加するシークレット名のリストがあると便利です。
元のアプリの各 シークレット の値を見つけます。
各シークレットを新しいアプリに個別に追加します。 方法については、「シークレットの定義 」を参照してください。
重要
構成ファイルをコピーする前にシークレットを追加する
一部の App Services 機能では、機能を定義して使用する前に 1 つ以上の シークレット を定義する必要があります。 たとえば、OAuth 認証プロバイダには、 clientSecret
値を含む Secret が必要です。
未定義のシークレットを参照する構成ファイルをプッシュすると、配置は失敗します。