前提条件
- AWSアカウントを持っていること
- Gitリポジトリにastro-notion-blogのコードがあること
手順
1.Amplifyにアクセスし、使用を開始する
AWSマネジメントコンソールからAmplifyを開く。
Amplifyホスティングの[使用を開始する]ボタンを押下する。
2.AmplifyとGitHubリポジトリの連携
既存のコードから[GitHub]を選択し、[続行]ボタンを押下する。
GitHubのサインイン画面が表示されるので、認証を行う。
GitHubの認証に成功したら、astro-notion-blogのリポジトリを選択し、ブランチはmainに指定。その後、[次へ]ボタンを押下する。
3.ビルドコマンド設定
アプリケーション名は任意でOK。
基本的には、Astro公式のビルドコマンドを設定することでビルド可能だが、astro-notion-blogにおいては、環境変数の設定をしないとビルドに失敗する。
[構築とテストの設定]の[編集]から以下のコード(環境変数設定含む)をコピペでOK。
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
# 環境変数の追加
- echo "DATABASE_ID" >> .env
- echo "NOTION_API_SECRET" >> .env
- npm run build
artifacts:
baseDirectory: /dist
files:
- '**/*'
cache:
paths:
- node_modules/**/*
その後、[環境変数]セクションに以下環境変数を設定し、[次へ]ボタンを押下する。
環境変数名 | 説明 |
---|---|
DATABASE_ID | 公開予定のNotion DBのID。astro-notion-blogのREADMEに取得手順が記載されている。 |
NOTION_API_SECRET | Notionインテグレーションのシークレットキー。 |
PUBLIC_GA_TRACKING_ID | Google Analyticsのトラッキングコード(任意)。画像にはないが設定済み。 |
4.デプロイ
確認画面の[保存してデプロイ]ボタンを押下することで、astro-notion-blogがAmplifyにホスティングされる。
デプロイに失敗する場合
私が確認できているデプロイエラーについての解消方法を記載しています。
Node.js v16.19.0 is not supported by Astro! Please upgrade Node.js to a supported version: ">=18.14.1"
ビルドする際にNode.jsのバージョンを18.14.1以上にアップグレードする必要がある。
[ライブパッケージの更新]セクションの[パッケージバージョンの上書きを追加]から[Node.js version]を選択する。
Node.jsバージョンを18.14.1以上に設定してから、再度デプロイする。(v20.11.0にしてみた)
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
Node.jsのバージョンを18.14.1以上にしてから、再度デプロイした際に、GLIBC_2.27、GLIBC_2.28が存在しないというエラーでデプロイに失敗する。
以下の記事と同じ現象。。
Amplifyホスティングで使用しているデフォルトイメージを変更すれば、解決するとのことだったので試してみる。
Amplify画面左側の[ビルドの設定]の[Build image settings]にある[Edit]ボタンを押下する。
[構築イメージ]を[Amazon Linux:2023]に設定し、[保存]ボタンを押下する。
再デプロイしてみると、無事にデプロイ完了した!
ブラウザ上で問題なくastro-notion-blogが表示されることを確認。
Amplify + Route53のドメイン設定はまた次の機会で