Docs Menu
Docs Home
/ /
Atlas App Services
/

アプリのコピー

項目一覧

  • 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 からの変更の回避 」を参照してください。

1

MongoDB Atlas Admin API キーを使用して CLI にログインします。

appservices login --api-key="<my api key>" --private-api-key="<my private api key>"
2

新しい空白アプリを作成します。 名前を選択し、コピーしたアプリで使用する配置モデルとリージョンを設定します。 詳しくは、「アプリの作成 」を参照してください。

# Create the new App
appservices app create \
--name "myapp-copy" \
--deployment-model "LOCAL" \
--provider-region "aws-us-west-2"
3

アプリの構成ファイルには、シークレットの名前や値は含まれません。

元のアプリの既存の シークレット 値にアクセスし、それらを新しいアプリに手動で追加する必要があります。 アプリにシークレットがない場合は、この手順をスキップできます。

元のアプリのシークレットを追加するには

  1. ビュー シークレット のドキュメントに従って、エクスポートされたアプリからすべてのシークレットの名前を取得します。

  2. すべてのシークレットの名前を安全な場所に保存します。 リストには実際のシークレット値は含まれませんが、新しいアプリに追加するシークレット名のリストがあると便利です。

  3. 元のアプリの各 シークレット の値を見つけます。

  4. 各シークレットを新しいアプリに個別に追加します。 方法については、「シークレットの定義 」を参照してください。

重要

構成ファイルをコピーする前にシークレットを追加する

一部の App Services 機能では、機能を定義して使用する前に 1 つ以上の シークレット を定義する必要があります。 たとえば、OAuth 認証プロバイダには、 clientSecret値を含む Secret が必要です。

未定義のシークレットを参照する構成ファイルをプッシュすると、配置は失敗します。

4

元のアプリの構成ファイルの最新バージョンをローカル ファイルシステムに取得します。 方法については、「アプリをエクスポートする 」を参照してください。

# 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
5

元のアプリからコピーした構成ファイルをプッシュします。 新しいアプリは、コピーされた構成ファイルを使用して自動的に更新および配置されます。

# Navigate back to the new App
cd myapp-copy
# Push the copied configuration files to App Services
appservices push
1

コピーしたアプリの構成ファイルを保存するための新しいディレクトリを作成します。 コピーされたアプリ用に新しいリポジトリを作成するか、ブランチまたはサブディレクトリを使用して両方のアプリの構成を同じリポジトリに保持できます。

# Create a new directory for the copied App
mkdir myapp-copy
2

新しい空白アプリを作成します。 元のアプリと同じ名前を選択し、コピーしたアプリで使用するバージョンに合わせて 配置モデル と リージョン を設定します。 詳しくは、「アプリの作成 」を参照してください。

作成後、新しいアプリの構成ファイルを前の手順で作成したディレクトリに保存します(まだ保存していない場合)。

# 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 ..
3

新しいアプリで、 Github の自動配置を設定して有効にします。 必ず、元のアプリではなく、新しいアプリ用に作成したリポジトリ、ブランチ、ディレクトリを指定します。

4

アプリの構成ファイルには、シークレットの名前や値は含まれません。

元のアプリの既存の シークレット 値にアクセスし、それらを新しいアプリに手動で追加する必要があります。 アプリにシークレットがない場合は、この手順をスキップできます。

元のアプリのシークレットを追加するには

  1. ビュー シークレット のドキュメントに従って、エクスポートされたアプリからすべてのシークレットの名前を取得します。

  2. すべてのシークレットの名前を安全な場所に保存します。 リストには実際のシークレット値は含まれませんが、新しいアプリに追加するシークレット名のリストがあると便利です。

  3. 元のアプリの各 シークレット の値を見つけます。

  4. 各シークレットを新しいアプリに個別に追加します。 方法については、「シークレットの定義 」を参照してください。

重要

構成ファイルをコピーする前にシークレットを追加する

一部の App Services 機能では、機能を定義して使用する前に 1 つ以上の シークレット を定義する必要があります。 たとえば、OAuth 認証プロバイダには、 clientSecret値を含む Secret が必要です。

未定義のシークレットを参照する構成ファイルをプッシュすると、配置は失敗します。

5

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
6

コピーされたアプリケーション構成ファイルをコミットし、 Githubにプッシュします。 新しいアプリは、コピーされた構成ファイルを使用して自動的に更新および配置されます。

# Navigate back to the new App
cd myapp-copy
# Push the copied configuration files to GitHub
git add -A
git commit -m "Copy configuration from myapp"
git push origin main

戻る

アプリの更新