10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS AmplifyAdvent Calendar 2020

Day 16

AmplifyのMulti Environmentで個人的にやっていること🚀

Last updated at Posted at 2020-12-15

AWS Amplify Advent Calendar 2020:santa_tone2:
12月16日を担当させてだくDysonです。
今日は私の誕生日です:raised_hands:

AmplifyのMulti Environmentを使うと同じコードで環境の分離ができます。
例えば、商用環境、ステージング環境、開発環境の分離をamplifyで行うことができます。
開発を行っていく上ではかなり重宝します。

参考: Amplify Multi Environment でチーム開発を整備する
https://dev.classmethod.jp/articles/amplify-multienv-team-dev/

multienvは便利なのですが、Gitブランチの切り替え時にenvの切り替えを
忘れていたり、自動で書き換わる別envの設定ファイルで競合が起きたりするので
個人的にやっていることを紹介します。

1. Gitブランチの切り替え時にenvの切り替えを忘れを防ぐ

切り替えようのスクリプトを作成しました。

  • bin/checkout-env.sh
#!/bin/sh
declare -A branches=(
    ["prod"]="master"
    ["staging"]="staging"
    ["dev"]="develop"
)
PS3="Select checkout env: "
select selected in "${!branches[@]}"
do
  target=$selected
  break
done

echo "Checkout: $target"
git checkout ${branches[$target]} && amplify env checkout $target
  • 実行方法
$bin/checkkout-env.sh
1) dev
2) prod
3) staging
Select checkout env: 2
Checkout: prod
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
✔ Initialized provider successfully.
Initialized your environment successfully.

実行時にenvを数字で指定します。(以前は引数でenvを指定でしたが、選択式に変更しました。)
envの切り替えを先に行うとファイルの書き換えによりGitブランチが変更できないので先にGitブランチ切り替えを実行しています。

※env名とブランチ名は各自の環境に合わせてスクリプトの変更が必要になります。

2. 別envの設定ファイルで競合を回避する

Amplifyのenvの切り替えやamplify pushを行うと設定ファイルやCloudFormationの
テンプレートが更新されます。
.gitignoreでファイルを除外する方法もありますが、管理対象からは除外したくなかったので
.git/configと.gitattributesに競合時は自ブランチのファイルを優先する設定を追加しました。

  • .git/config
[merge "ours"]
    name = "Keep ours merge"
    driver = true
  • .gitattributes
src/aws-exports.js merge=ours
amplify/team-provider-info.json merge=ours
amplify/backend/api/*/build/cloudformation-template.json merge=ours
amplify/backend/api/*/build/parameters.json merge=ours
amplify/backend/auth/*/parameters.json merge=ours
amplify/backend/function/*/*-cloudformation-template.json merge=ours

その他こんな工夫をしているとかあれば教えて下さい!
それではMerry Amplify:tada:

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?