#はじめに
こんにちは!
先日、実務で初めて amplify override をつかってAmplifyのバックエンドリソースをカスタマイズしました。簡単すぎてとても驚きました。。
今回は、その際実装した内容について記事にさせていただきます。
amplify overrideが登場するまで
Amplifyを用いて開発する以上、バックエンドリソースのカスタマイズをする際これまでですと Amplify CLI によるCloudFormationの更新が基本でした。ただ、一部Amplify CLIからの操作では変更できない内容については、CloudFormationのを直に編集する必要がありました。
ただ、せっかくAmplifyを使って開発しているのでなるべく直にCloudFormationは触りたくない。。そんな中、Amplify CLI v7.3.0から新たに amplify override
という機能が追加されました。
#amplify overrideとは
amplify override はバックエンドリソースの一部をCDKでカスタマイズできる機能で、CloudFormationと異なり、プログラム言語を用いてリソースの定義が行えるサービスです。これによって、これまでよりも簡単にバックエンドリソースのカスタマイズが行えるようになりました!
#実際に使ってみた
Cognitoユーザープールから配信するメールオプションをデフォルトのEメールからSESに置き換えようと思います。というのも、デフォルトのEメールオプションですと、1つのAWSアカウントにつき1日50件までしか送信できないといった制限がついてしまうからです。
今回はこれをamplify override
でカスタマイズしていこうと思います。
##1.amplify overrideコマンドを入力
下記のようにコマンドを入力すると、amplify/backend/auth/<resource-name>/
にoverride.ts
ファイルが作られます。
amplify override auth
##2.overrideファイルを編集
ファイル内を下記のように記述します。また、今回はあくまでoverrideの機能紹介なので、SESの設定についての説明は省略させていただきますが、事前にAWSコンソールなどから作成したメールアドレスのARNを指定します。
import { AmplifyAuthCognitoStackTemplate } from '@aws-amplify/cli-extensibility-helper';
export function override(resources: AmplifyAuthCognitoStackTemplate) {
// Set the user pool emailConfiguration
resources.userPool.emailConfiguration = {
emailSendingAccount: "DEVELOPER",
sourceArn: "arn:aws:ses:省略",
}
}
##3.amplify pushを実行して変更をデプロイ
下記コマンドにてバックエンドリソースをデプロイします。
amplify push
最後にCognitoユーザープールのコンソール上で確認してみましょう。
反映されていますね。
画像外のFROM E メールアドレス ARN
の項目でも、先ほどoverride.ts
で設定したメールアドレスARNが設定されていました。
#おわりに
今回は amplify overrideについてご紹介させていただきました!
CloudFormationに苦手意識のあった自分にとってはとても便利な機能でした。
今後も進化していく Amplify に期待です!