0
0

More than 1 year has passed since last update.

CodeCatalyst Blueprintの"Single-page application"をやってみた

Last updated at Posted at 2023-09-12

はじめに

  • CodeCatalystば2022年のre:Inventで発表された、「開発ツールをオールインワンで提供する」サービスです
  • CodeCatalystにはBlueprintという機能があり、様々なユースケースに沿ったサンプルプロジェクトを用意してくれています
  • 今回はその中の"Single-page application"(いわゆるSAP)に関するBlueprintを試しつつ、ちょっとだけ詳しめにレポートしてみようと思います
    スクリーンショット 2023-09-12 23.50.20.png

お断り

  • CodeCatalystは、AWSアカウントの他にBuilder IDというものを発行する必要があります
  • その発行手順や初期設定云々については省略させてください
    • 他の方が丁寧に解説してくださっていますのでそちらをご参照ください・・・
    • (記事書きながら作ればよかったと後悔しています)

Blueprintを用いたプロジェクトの作成してみよう

  1. CodeCatalystのコンソール内のSpaceに移動します
    ※CodeCatalystはSpaceの中にProjectを作成していきます
    スクリーンショット 2023-09-12 21.56.51.png
  2. 画面右の「Create Project」を押下します
    スクリーンショット 2023-09-12 21.03.39.png
  3. "Start with a blueprint"の中の"Single-page application"を選択し、「Next」を押下します
    ※画面右にて、テーマに応じた説明資料があるのでここで詳細が確認できます
    スクリーンショット 2023-09-12 21.04.24.png
  4. プロジェクト名やデプロイ先のアカウント、デプロイに使用するIAMロール等の設定画面が表示されます
    スクリーンショット 2023-09-12 21.06.18.png
  5. 上記、画面右の「View code」を押下すると、プロジェクトのソースを確認できます
    ※CDKや、ワークフローというCodeCatalystのCI/CDの設定ファイル、ソースコード等が詰まっています
    スクリーンショット 2023-09-12 21.07.41.png
  6. 上記、画面右の「View workflow」を押下すると、ワークフローの設定を視覚的に確認できます
    スクリーンショット 2023-09-12 21.08.51.png
    スクリーンショット 2023-09-12 22.15.02.png
    ※↑YAMLを確認してみると、こちらはmainへのPULL REQUESTをトリガーとして起動するテスト用ワークフローということがわかります
    スクリーンショット 2023-09-12 21.10.48.png
    スクリーンショット 2023-09-12 22.14.46.png
    ※同じく↑YAMLを確認してみると、こちらはmainへのPUSHをトリガーとして起動するデプロイ用ワークフローということがわかります
  7. 画面左、下部の設定項目ではBlueprintの内容に応じた設定項目があり、例えば"Hosting"がデフォルトの「Amplify Hosting」の状態ではCDKのソース内もAmplifyのリソースをデプロイしようとしますが・・・
    スクリーンショット 2023-09-12 21.13.19.png
    「CloudFront + S3」にすると、動的にソース側が変化します
    スクリーンショット 2023-09-12 21.17.07.png
  8. 残りのデプロイ先のリージョン、リポジトリ名、スタック名は任意に設定してください。
    スクリーンショット 2023-09-12 21.40.20.png
    ※なお、2023年9月現在デプロイ先のリージョンは以下の4つに限られています(東京、大阪も早く追加してほしいです・・・)
    スクリーンショット 2023-09-12 21.18.13.png
  9. すべて入力したら「Create project」を押下、するとプロジェクトが作成されます
    スクリーンショット 2023-09-12 21.20.46.png
    スクリーンショット 2023-09-12 21.21.20.png
  10. 画面左、"CI/CD"の「Workflows」を見てみるとPUSHをトリガーとして起動するデプロイ用ワークフローが実行されていることがわかります
    スクリーンショット 2023-09-12 21.22.33.png
    スクリーンショット 2023-09-12 21.23.13.png
    スクリーンショット 2023-09-12 22.33.09.png
    ※あくまで参考ですが、完了まで約8分半でした

デプロイを確認してみよう

  1. AWSマネジメントコンソールを開き、CloudFormationを確認するとちゃんとデプロイされていることがわかります
    スクリーンショット 2023-09-12 22.36.02.png
  2. スタックの出力を確認すると、デプロイされたSAPのURLがありますので押下します
    スクリーンショット 2023-09-12 22.39.18.png
  3. Reactのサンプル画面が表示されました!
    スクリーンショット 2023-09-12 22.39.48.png

まとめ

  • いかがでしょうか、ここまで全体で何分かかりましたか?
  • ただデプロイするだけまだしも、CodeCatalystにかかればIaCやCI/CDも含めたプロジェクトをこんなにも爆速で手にすることができます!
  • CodeCatalystはエンジニアの味方!!
  • (今後他のBlueprintも試してレポート上げていきたい!目指せCodeCatalystおじさん)

おまけ1 PULL REQUESTで起動するテスト用をワークフローあえて失敗させてみよう

スクリーンショット 2023-09-12 22.53.41.png
※このテストコードをあえて失敗するように変更して挙動を確認していく

  1. 必要はないものの、それっぽく、issueを作成してみる(任意です)
    スクリーンショット 2023-09-12 22.55.42.png
    スクリーンショット 2023-09-12 22.56.02.png
    スクリーンショット 2023-09-12 22.57.06.png
    ※チーム開発の際は"Assignees"にて誰に紐付けるかまでこちらで設定可能
    スクリーンショット 2023-09-12 22.57.23.png
    スクリーンショット 2023-09-12 22.58.09.png
  2. 次に、ブランチを作成する
    スクリーンショット 2023-09-12 22.58.53.png
    スクリーンショット 2023-09-12 23.02.28.png
    スクリーンショット 2023-09-12 23.02.48.png
  3. 作成したブランチにて、テストコードを編集する
    ※お作法としてコンソール上から編集はするべきではないとは思うますが今回はデモのためご了承ください
    スクリーンショット 2023-09-12 23.04.38.png
    スクリーンショット 2023-09-12 23.05.06.png
    スクリーンショット 2023-09-12 23.05.15.png
  4. mainブランチに対してプルリクエストを出す
    スクリーンショット 2023-09-12 23.08.00.png
    スクリーンショット 2023-09-12 23.09.24.png
    ※画面右上にて、Issueと紐づけすることが可能
    スクリーンショット 2023-09-12 23.09.56.png
  5. 紐づけているメールアドレス宛にプルリクエストの通知メールが来ます
    スクリーンショット 2023-09-12 23.11.11.png
  6. mainブランチにプルリクエストを出したことにより、ソースブランチ側でPULL REQUESTをトリガーとするテスト用ワークフローが実行される
    ※↓手違いでスクショをミスしてしまったため、無関係な2回目の実行部分を黒線で消しています
    スクリーンショット 2023-09-12 23.16.36.png
  7. ワークフローのログを確認すると、意図した箇所で失敗していることがわかります
    スクリーンショット 2023-09-12 23.17.14.png

おまけ2 プロジェクトとスタックの削除

※私自身削除するのは初めて知ったのですが、CodeCatalyst上でプロジェクトを削除しても、スタックは存続するので注意してください

  1. "Project setting"の画面下部の「Delete project」を押下する
    スクリーンショット 2023-09-12 23.52.20.png
  2. "delete"を入力し、「Delete project」を押下する
    スクリーンショット 2023-09-12 23.52.33.png
  3. CloudFormtionの画面に移動して画面右上「削除」を押下する
    スクリーンショット 2023-09-12 23.55.01.png
    ※(追記)URLが写っちゃってますが、削除済みなのでそのままにしておきます
  4. 該当のスタックが"DELETE_COMPLETE"になったことを確認する
0
0
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
0