ネストされたAWS SAM アプリケーションのサンプル その1
概要
AWS SAM を使用して、ネストされたスタックのサンプルを作成してみました。
S3 -> EventBridge -> Lambda の流れで、S3にオブジェクトを作成したイベントを使ってLambdaをトリガーします。
既存のS3にイベントを追加するのは手間が多そうだったので、EventBridgeを使用することにしました。
AWS Certified DevOps Engineer - Professional (DOP-C02) 試験の学習用にリンクをまとめたものです。
以前の記事(Dockerを使ったRedmine環境の構築)で構築したRedmineのMySQLをバージョンアップしてみました。
当初はMySQL5.7を使いましたが、今回MySQL8.3.0へバージョンアップしたので、その時のことを記録として残します。
今回作成した成果物をGithubで公開しています。
1行だけですが、以下の部分を変更しました。
1 | mysql: |
docker-compose でコンテナを更新しました。
1 | docker-compose up -d |
コマンド実行後は数分の間 Redmine にアクセスできなくなり、ログを確認すると MySQL のバージョンアップ処理中でした(当たり前ですが・・・)。
1 | docker logs -f mysql |
以下のようなログが出ます。
1 | 2024-02-06T10:24:44.236571Z 5 [System] [MY-013381] [Server] Server upgrade from '50700' to '80300' started. |
バージョンアップが完了したら、今まで通り使えることを確認しました。
今回は初めての更新ということもあり、折角なのでバージョンリリースをしてみました。
参考にしたのは、 Semantic Versioning 2.0.0 です。
MySQL5.7を使用していた時のものには “v0.1.0” というタグを付けて “0.1.0” としてリリースし、今回の更新版には “v1.0.0” というタグをつけて “1.0.0” としてリリースしました。
DynamoDBの中身を扱うツールが欲しくなったので、
今更ですがAmplifyを使ってみようと思い、公式のチュートリアルをやってみました。
ちなみにReactも触ったことがなく、今回初めて使っているので勘違いしている部分があるかもしれませんが、ご了承ください。
チュートリアルが作成された当時に比べてAmplifyのバージョンが上がっているせいか、所々でエラーが出ていたので、調べた記録を残しておくことにしました。
今回試したのは以下のチュートリアルです。
エラーの概要としては、「モジュール 4: GraphQL API とデータベースを追加する」で、以下のようにimportする部分があるのですが、amplifyのライブラリがバージョンアップして使い方が変わっているようで、このままコピペするとエラーが出ました。
1 | import { API } from "aws-amplify"; |
Amplify Dev Centerのドキュメントを参考にして修正したところ正常に動作したので、
おそらくこれで合っているのだろうと思っています。
1 | import { generateClient } from 'aws-amplify/api'; |
詳細は続きを見てください。
先の記事でコンテナLambdaを実行できるようになりました。
その後、app.pyを修正して再度sam deployしたときに以下のエラーが表示され、
原因が分かるのに時間がかかったので、備忘録として記録しておきます。
1 | Error: Only one of the following can be provided: '--image-repositories', '--image-repository', or '--resolve-image-repos'. Do you have multiple specified in the command or in a configuration file? |