0
2

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 1 year has passed since last update.

Amplifyプロジェクトをみんなで開発

Last updated at Posted at 2021-12-30

1つのAmplifyプロジェクトをみんなで開発するためのメモ

書くことはほとんど公式の中身だが、日本語説明&自分の経験を少し絡めて書こうと思います。

既にAmplifyで誰かがプロジェクト AAA を立ち上げてamplify push済み
環境名は devとします。
このdevはGitにコミット済み devブランチです。

さて、ここでプロジェクトにメンバーkobashi追加されました。彼がまず最初にやることは

$git checkout -b dev

$amplify init
? Do you want to use an existing environment?
Yes
? Choose the environment you would like to use:
dev
? Choose your default editor:
好きなエディタを選ぶ
? Select the authentication method you want to use:
AWS profile
? Please choose the profile you want to use
使用してるAWSプロファイル

✔ Initialized provider successfully.
Initialized your environment successfully.

$amplify status

    Current Environment: dev
    
┌──────────┬────────────────────────────────────────┬───────────┬───────────────────┐
│ Category │ Resource name                          │ Operation │ Provider plugin   │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Function │ ********************                   │ No Change │ awscloudformation │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Auth     │ ***********                            │ No Change │ awscloudformation │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Api      │ ***********                            │ No Change │ awscloudformation │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Storage  │ ***********                            │ No Change │ awscloudformation │
└──────────┴────────────────────────────────────────┴───────────┴───────────────────┘


これで Amplify AAAプロジェクトのdev環境が持ってこれた。
この環境で編集してpushしていくと、他のメンバーとの間で競合が発生するリスクがある
Amplifyでは開発者毎に環境を持つことができるので、自分の個人環境で開発を進める。

自分の名前 kobashi amplify環境で開発をする

$amplify env add  kobashi
Using default provider  awscloudformation
? Select the authentication method you want to use: 
AWS profile

? Please choose the profile you want to use 
使用してるAWSプロファイル
Adding backend environment kobashi to AWS Amplify app: *************
⠙ Initializing project in the cloud...


$amplify env list

| Environments |
| ------------ |
| dev          |
| *kobashi     |


この時点ではまだCloud上には作成されてない

$amplify status


    Current Environment: kobashi
    
┌──────────┬────────────────────────────────────────┬───────────┬───────────────────┐
│ Category │ Resource name                          │ Operation │ Provider plugin   │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Function │ ********************                   │ Create       │ awscloudformation │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Auth     │ ***********                            │ Create        │ awscloudformation │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Api      │ ***********                            │ Create        │ awscloudformation │
├──────────┼────────────────────────────────────────┼───────────┼───────────────────┤
│ Storage  │ ***********                            │ Create       │ awscloudformation │
└──────────┴────────────────────────────────────────┴───────────┴───────────────────┘


クラウドにプッシュする
$amplify push

これでkobashi環境が作成できる。このkobashi環境で開発を行う。
AWSコンソールにログインすると CognitoやAppsync、Dynamoなどに

リソース名-kobashi

というネーミングルールで自分用の環境が生まれたことが確認できる。

なおgit上では devブランチのローカルファイルに今のAmplify操作での変更が入ってしまっている状態だと思う。

あくまでkobashi環境に合わせての変更だから、gitも devからkobashiブランチを作成してコミット。dev上ではコミットしないこと。(自分はソースツリーを使っているので、gitのコマンド操作は割愛)

つまり git(kobashi) と amplify(kobashi) が一対一の関係になるようにする

で、開発が終わったらgit(kobashi)の変更をコミット

最後にdev環境で動作確認する

$amplify env checkout dev
$git checkout dev

gitをdevに戻す際に team-provider-info.json がローカルで変更されている旨のアラートが出る。どうもamplify env checkout dev した際に team-provider-info.json にkobashi側環境での変更情報を書き込むために起きるアラート

このままローカル変更を破棄すると、kobashi環境で作業した変更が消えてしまうので、いったんスタッシュして、team-provider-info.json を確保しておく。

※amplify initで .gitignoreに無視するべきファイル名が書き込まれるけど、team-provider-info.jsonは含まれないために起こる現象
※team-provider-info.jsonを無視する運用をすればこの現象は起きない。
※もしくはgitコミット>マージ>amplify env checkout の順番で操作すれば、アラート出さずにマージできる

その上で git(kobashi)=>git(dev)のマージを行って、スタッシュをteam-provider-info.jsonに適応することで対応した。

ともあれソース的にはdevに全ての変更が反映されたので

$amplify push

これでdev上で動作確認

最後にkobashi環境を掃除します。

amplify env remove kobashi

? Are you sure you want to continue? This CANNOT be undone. (This will delete 'kobashi' environment of the project from the cloud) (y/N)
yes

AWSコンソールから、-kobashi環境が無くなったのを確認したら作業終了

Tips:この削除が重要で、AWSではCloudFormationのスタックの数(DynamoとかAppsyncとかLamdaとかの数)使用上限が200までらしいです。申請すれば増やせるそうですが、不要な個人環境は削除する癖をつけておきましょう。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?