astro-sst
This adapter allows Astro to deploy your SSR or static site to AWS.
Installation
Add the AWS adapter to enable SST in your Astro project with the following astro add
command. This will install the adapter and make the appropriate changes to your astro.config.mjs
file in one step.
npx astro add astro-sst
yarn astro add astro-sst
pnpm astro add astro-sst
If you prefer to install the adapter manually instead, complete the following two steps:
-
Install the AWS adapter to your project’s dependencies using your preferred package manager. If you’re using npm or aren’t sure, run this in the terminal:
npm install astro-sst
-
Add two new lines to your astro.config.mjs
project configuration file.
import { defineConfig } from "astro/config";
import aws from "astro-sst";
export default defineConfig({
output: "server",
adapter: aws(),
});
Deployment Strategies
You can utilize different deployment depending on your needs:
You can change where to target by changing the import:
import { defineConfig } from "astro/config";
import aws from "astro-sst";
export default defineConfig({
output: "server",
adapter: aws({
deploymentStrategy: "edge",
}),
});
Response Mode
When utilizing regional
deployment strategy, you can choose how responses are handled:
buffer
: Responses are buffered and sent as a single response. (default)stream
: Responses are streamed as they are generated.
import { defineConfig } from "astro/config";
import aws from "astro-sst";
export default defineConfig({
output: "server",
adapter: aws({
deploymentStrategy: "regional",
responseMode: "stream",
}),
});
Server Routes
When utilizing regional
deployment strategy, server routes should be defined for any routes utilizing non-GET
methods:
import { defineConfig } from "astro/config";
import aws from "astro-sst";
export default defineConfig({
output: "server",
adapter: aws({
deploymentStrategy: "regional",
serverRoutes: [
"feedback",
"login",
"user/*",
"api/*",
],
}),
});