Setup
Astro AWS Amplify is an Astro adapter for deploying server-side Astro sites on AWS Amplify Hosting.
Prerequisites
- an Astro site -
v4.xor higher (may also work onv3.xsites)
Installation
npm install astro-aws-amplifypnpm add astro-aws-amplifyyarn add astro-aws-amplifyIn your Astro config, add the adapter:
import { defineConfig } from 'astro/config'; import awsAmplify from 'astro-aws-amplify';
export default defineConfig({ output: 'server', // output: 'hybrid' adapter: awsAmplify()})Configuration
Astro
Server and hybrid modes are supported. For static sites, remove the adapter and follow these instructions.
AWS Amplify
AWS Amplify Hosting uses Node.js v16 by default which isn’t supported.
You can use the newer Amazon Linux:2023 by adding an environment variable of:
_CUSTOM_IMAGE=amplify:al2023Build specifications
You can use the following build specifications as-is or customize it to your liking. Moving the node_modules folder is required for npm and Yarn deployments.
version: 1frontend: phases: preBuild: commands: - npm ci build: commands: - env >> .env - npm run build - mv node_modules ./.amplify-hosting/compute/default - mv .env ./.amplify-hosting/compute/default/.env artifacts: baseDirectory: .amplify-hosting files: - '**/*' cache: paths: - node_modules/**/*version: 1frontend: phases: preBuild: commands: - npm i -g pnpm - pnpm config set store-dir .pnpm-store - pnpm i build: commands: - env >> .env - pnpm run build - mv .env ./.amplify-hosting/compute/default/.env
artifacts: baseDirectory: .amplify-hosting files: - '**/*' cache: paths: - .pnpm-store/**/*version: 1frontend: phases: preBuild: commands: - yarn install build: commands: - env >> .env - yarn run build - mv node_modules ./.amplify-hosting/compute/default - mv .env ./.amplify-hosting/compute/default/.env artifacts: baseDirectory: .amplify-hosting files: - '**/*' cache: paths: - node_modules/**/*