単一環境の共有
クラウド上に2つの独立した環境(main & dev)があり、Amplifyバックエンド基盤コードを含むGitの対応するブランチがあります。すべてのチームメンバーが同じAmplifyプロジェクトで作業し、バックエンド関連の変更を同じdev環境にプッシュして変更をテストしたいとします。各チームメンバーは以下を実行します:
cd <project-dir>amplify initDo you want to use an existing environment? YesChoose the environment you would like to use:❯ devmain# The rest of init steps# amplify add/update amplify pushチームが同じdevバックエンドを共有しているため、チームメンバーは定期的にdev環境が同期されている状態に保つためにチームメンバーがプッシュした変更をプルする必要があります。devブランチと環境から変更をプルしましょう。
amplify pullチーム内でのプロジェクトの共有
amplifyディレクトリのファイル構造内には、以下のような構造を含むteam-provider-info.jsonファイルが見られます:
{ "dev": { "awscloudformation": { "AuthRoleName": "multenvtest-20181115101929-authRole", "UnauthRoleArn": "arn:aws:iam::132393967379:role/multenvtest-20181115101929-unauthRole", "AuthRoleArn": "arn:aws:iam::132393967379:role/multenvtest-20181115101929-authRole", "Region": "us-east-1", "DeploymentBucketName": "multenvtest-20181115101929-deployment", "UnauthRoleName": "multenvtest-20181115101929-unauthRole", "StackName": "multenvtest-20181115101929", "StackId": "arn:aws:cloudformation:us-east-1:132393967379:stack/multenvtest-20181115101929/fc7b1010-e902-11e8-a9bd-50fae97e0835" } }, "main": { "awscloudformation": { "AuthRoleName": "multenvtest-20181115102119-authRole", "UnauthRoleArn": "arn:aws:iam::345090917734:role/multenvtest-20181115102119-unauthRole", "AuthRoleArn": "arn:aws:iam::345090917734:role/multenvtest-20181115102119-authRole", "Region": "us-east-1", "DeploymentBucketName": "multenvtest-20181115102119-deployment", "UnauthRoleName": "multenvtest-20181115102119-unauthRole", "StackName": "multenvtest-20181115102119", "StackId": "arn:aws:cloudformation:us-east-1:345090917734:stack/multenvtest-20181115102119/3e907b70-e903-11e8-a18b-503acac41e61" } }}このファイルはチームメンバー間で共有され、同じCloudFormationスタックにリソースをプッシュ/プロビジョニングする能力を持つことができます。そうすることで、チームはプッシュ/プル方式で作業でき、常にクラウド上のプロジェクトの最新の状態と同期を保つことができます。
プロジェクトを公開してサーバーレスインフラストラクチャをオープンソース化したい場合は、amplify/team-provider-info.jsonファイルを.gitignoreファイルから削除するか、.gitignoreファイルに入れる必要があります。