amply でチームで開発するときは amplify cli の multienv 版を使おう
amply でチームで開発するときは amplify cli の multienv 版を使おう:
amplify で作ったリソースを Git 管理するさい、何をコミットして何をコミットしないかで悩んだことはありませんか? また、チームの他のメンバーがコミットしたリソースを自分の環境にチェックアウトしたとき、デプロイができなくなった経験はないでしょうか?
そんなときは amplify-cli の beta版 である multienv [1] を試してみましょう。
[!] 注1: 公式ドキュメント [1] にもあるとおり、 multienv版をインストールすると、もともとあった amplicy-cli が multienv 版に置き換わります 。既存のプロジェクトに意図しない影響を与える可能性があるので、すでに amplify-cli で環境構築してある場合は注意してください(グローバルでなく、まずはローカルにインストールしてみて試してみるなど)。
普通の amplify-cli と同様、対話的に設定の入力を求められます。
multienv を使った場合の違いとして environment について聞かれます。
ここでは開発環境として
すべての質問を入力し終えると、
multienv で amplify init したときのもう一つ違いとして、
amplify リソースを作成したときの Cloudformation stack の情報が記載されていることがわかります。このファイルをメンバーとシェアすることで、同じ CloudFormation Stack に対して push/pull することができるようになります。
注意: AWSアカウントIDなどが記載されているので、リポジトリを Public に公開する場合は上記のファイルはコミットしないようにしましょう。
これで、複数のメンバーで amplify のプロジェクトを共有することが問題なくできるようになりました。
気が向いたらデプロイ環境の分離についても試してみようと思います。
はじめに
amplify で作ったリソースを Git 管理するさい、何をコミットして何をコミットしないかで悩んだことはありませんか? また、チームの他のメンバーがコミットしたリソースを自分の環境にチェックアウトしたとき、デプロイができなくなった経験はないでしょうか?そんなときは amplify-cli の beta版 である multienv [1] を試してみましょう。
amplify-cli multienv を使うメリット
- デプロイ環境の分離
- amplify init 時にコミットしなくて良い資材を .gitignore に自動追加してくれる
インストール
@aws-amplify/cli
でなく @aws-amplify/cli@multienv
をインストールします(注1)。npm install -g @aws-amplify/cli@multienv
[!] 注1: 公式ドキュメント [1] にもあるとおり、 multienv版をインストールすると、もともとあった amplicy-cli が multienv 版に置き換わります 。既存のプロジェクトに意図しない影響を与える可能性があるので、すでに amplify-cli で環境構築してある場合は注意してください(グローバルでなく、まずはローカルにインストールしてみて試してみるなど)。
サンプルプロジェクトの作成
mkdir amplify-multienv-example cd amplify-multienv-example
amplify init
multienv を使った場合の違いとして environment について聞かれます。
ここでは開発環境として
dev
を指定します。? Enter a name for the environment dev
.gitignore
が自動的に作成され、コミットする必要のない資材のパスが追加されています。.gitignore
#amplify amplify/\#current-cloud-backend amplify/.config/local-* amplify/backend/amplify-meta.json aws-exports.js awsconfiguration.json
team-provider-info.json
というファイルが amplify
フォルダに作られていることがわかります。amplify/team-provider-info.json
{ "dev": { "awscloudformation": { "AuthRoleName": "amplifymultienvexamp-20190209112419-authRole", "UnauthRoleArn": "arn:aws:iam::xxxxxxxxxxxx:role/amplifymultienvexamp-20190209112419-unauthRole", "AuthRoleArn": "arn:aws:iam::xxxxxxxxxxxx:role/amplifymultienvexamp-20190209112419-authRole", "Region": "ap-northeast-1", "DeploymentBucketName": "amplifymultienvexamp-20190209112419-deployment", "UnauthRoleName": "amplifymultienvexamp-20190209112419-unauthRole", "StackName": "amplifymultienvexamp-20190209112419", "StackId": "arn:aws:cloudformation:ap-northeast-1:xxxxxxxxxxxx:stack/amplifymultienvexamp-20190209112419/ce6b1060-2c11-11e9-ade2-0a29b069fc22" } } }
注意: AWSアカウントIDなどが記載されているので、リポジトリを Public に公開する場合は上記のファイルはコミットしないようにしましょう。
終わりに
これで、複数のメンバーで amplify のプロジェクトを共有することが問題なくできるようになりました。気が向いたらデプロイ環境の分離についても試してみようと思います。
コメント
コメントを投稿