diff --git a/.circleci/config.yml b/.circleci/config.yml index 0530672434..5c64423cb9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -146,7 +146,7 @@ jobs: name: Install and run e2e tests working_directory: ~/project/packages/e2e-tests/<< parameters.app >> environment: - AWS_DEFAULT_REGION: us-east-1 + AWS_DEFAULT_REGION: us-west-2 WAIT_TIMEOUT: 900 SERVERLESS_CI: true command: | diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e1a9590622..50ad861525 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -47,7 +47,7 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_AT }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ST }} - AWS_DEFAULT_REGION: us-east-1 + AWS_DEFAULT_REGION: us-west-2 GITHUB_SHA: ${{ github.sha }} run: yarn handlers:upload-handler-sizes # diff --git a/.github/workflows/cleanup-e2e-tests.yml b/.github/workflows/cleanup-e2e-tests.yml index a74595adb9..4162f2c486 100644 --- a/.github/workflows/cleanup-e2e-tests.yml +++ b/.github/workflows/cleanup-e2e-tests.yml @@ -22,7 +22,7 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_AT }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ST }} - AWS_DEFAULT_REGION: us-east-1 + AWS_DEFAULT_REGION: us-west-2 run: | cd packages/e2e-tests/test-utils yarn --frozen-lockfile diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 2ffd9bf9d4..d0403df97b 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -169,7 +169,7 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_AT }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ST }} - AWS_DEFAULT_REGION: us-east-1 + AWS_DEFAULT_REGION: us-west-2 WAIT_TIMEOUT: 900 CYPRESS_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed for testing external rewrites to GitHub API without getting throttled NODE_OPTIONS: "--max-old-space-size=4096" diff --git a/packages/ci-api/serverless.yml b/packages/ci-api/serverless.yml index 40559ad4f1..82ed06e53f 100644 --- a/packages/ci-api/serverless.yml +++ b/packages/ci-api/serverless.yml @@ -4,7 +4,7 @@ provider: name: aws runtime: nodejs14.x stage: prod - region: us-east-1 + region: us-west-2 package: individually: true diff --git a/packages/deprecated/serverless-plugin/lib/__tests__/addCustomStackResources.test.js b/packages/deprecated/serverless-plugin/lib/__tests__/addCustomStackResources.test.js index bf54abf357..81104c5560 100644 --- a/packages/deprecated/serverless-plugin/lib/__tests__/addCustomStackResources.test.js +++ b/packages/deprecated/serverless-plugin/lib/__tests__/addCustomStackResources.test.js @@ -261,7 +261,7 @@ describe("addCustomStackResources", () => { expect(apiGatewayOrigin.OriginPath).toEqual("/test"); expect(apiGatewayOrigin.DomainName["Fn::Join"][1][1]).toEqual( - ".execute-api.us-east-1.amazonaws.com" + ".execute-api.us-west-2.amazonaws.com" ); }); diff --git a/packages/deprecated/serverless-plugin/lib/addCustomStackResources.js b/packages/deprecated/serverless-plugin/lib/addCustomStackResources.js index 1197a51533..0ffb9e2d4a 100644 --- a/packages/deprecated/serverless-plugin/lib/addCustomStackResources.js +++ b/packages/deprecated/serverless-plugin/lib/addCustomStackResources.js @@ -171,7 +171,7 @@ const addCustomStackResources = async function () { // see https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html const bucketBaseUrl = - region === "us-east-1" + region === "us-west-2" ? "https://s3.amazonaws.com" : `https://s3-${region}.amazonaws.com`; diff --git a/packages/deprecated/serverless-plugin/utils/test/ServerlessPluginBuilder.js b/packages/deprecated/serverless-plugin/utils/test/ServerlessPluginBuilder.js index 93f513ea67..6f861d0165 100644 --- a/packages/deprecated/serverless-plugin/utils/test/ServerlessPluginBuilder.js +++ b/packages/deprecated/serverless-plugin/utils/test/ServerlessPluginBuilder.js @@ -11,7 +11,7 @@ class ServerlessPluginBuilder { getProvider: () => { return { request: () => {}, - getRegion: () => "us-east-1", + getRegion: () => "us-west-2", getStage: () => "test" }; }, diff --git a/packages/e2e-tests/test-utils/scripts/cleanup-lambda.ts b/packages/e2e-tests/test-utils/scripts/cleanup-lambda.ts index 2791031701..878e4879d5 100644 --- a/packages/e2e-tests/test-utils/scripts/cleanup-lambda.ts +++ b/packages/e2e-tests/test-utils/scripts/cleanup-lambda.ts @@ -121,7 +121,7 @@ async function cleanupVersions( } console.info("Cleaning up old Lambda versions"); -cleanupVersions("us-east-1", true) // All Lambda@Edge is created in us-east-1 only +cleanupVersions("us-west-2", true) // All Lambda@Edge is created in us-west-2 only .then((success) => { console.info( `Cleaning up old Lambda versions successful. Count: ${success}` diff --git a/packages/libs/lambda-at-edge/CHANGELOG.md b/packages/libs/lambda-at-edge/CHANGELOG.md index 3ad37957a6..d7bea4492b 100644 --- a/packages/libs/lambda-at-edge/CHANGELOG.md +++ b/packages/libs/lambda-at-edge/CHANGELOG.md @@ -1160,7 +1160,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ### Features -- **lambda-at-edge:** use S3 regional endpoint when not in us-east-1 ([#474](https://github.com/serverless-nextjs/serverless-next.js/issues/474)) ([5ecff1a](https://github.com/serverless-nextjs/serverless-next.js/commit/5ecff1a50e26c22f7de9ec9da3cf2cba4390d77d)) +- **lambda-at-edge:** use S3 regional endpoint when not in us-west-2 ([#474](https://github.com/serverless-nextjs/serverless-next.js/issues/474)) ([5ecff1a](https://github.com/serverless-nextjs/serverless-next.js/commit/5ecff1a50e26c22f7de9ec9da3cf2cba4390d77d)) ## [1.4.1-alpha.5](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/lambda-at-edge@1.4.1-alpha.4...@sls-next/lambda-at-edge@1.4.1-alpha.5) (2020-06-30) diff --git a/packages/libs/lambda-at-edge/src/default-handler-v2.ts b/packages/libs/lambda-at-edge/src/default-handler-v2.ts index a693e28dd0..997dc0d6df 100644 --- a/packages/libs/lambda-at-edge/src/default-handler-v2.ts +++ b/packages/libs/lambda-at-edge/src/default-handler-v2.ts @@ -44,7 +44,7 @@ export const handler = async ( const request = event.Records[0].cf.request; const bucketName = s3BucketNameFromEventRequest(request) ?? ""; const { region: bucketRegion } = request.origin?.s3 || { - region: "us-east-1" // default to us-east-1 though it should always be present + region: "us-west-2" // default to us-west-2 though it should always be present }; const regenerationQueueRegion = bucketRegion; const regenerationQueueName = diff --git a/packages/libs/lambda-at-edge/src/default-handler.ts b/packages/libs/lambda-at-edge/src/default-handler.ts index 4af8b03ee0..c5c6bc6e1b 100644 --- a/packages/libs/lambda-at-edge/src/default-handler.ts +++ b/packages/libs/lambda-at-edge/src/default-handler.ts @@ -82,7 +82,7 @@ const addS3HostHeader = ( }; const normaliseS3OriginDomain = (s3Origin: CloudFrontS3Origin): string => { - if (s3Origin.region === "us-east-1") { + if (s3Origin.region === "us-west-2") { return s3Origin.domainName; } diff --git a/packages/libs/lambda-at-edge/tests/default-handler/default-handler-with-basepath.test.ts b/packages/libs/lambda-at-edge/tests/default-handler/default-handler-with-basepath.test.ts index 1b566e4300..aed4662e0a 100644 --- a/packages/libs/lambda-at-edge/tests/default-handler/default-handler-with-basepath.test.ts +++ b/packages/libs/lambda-at-edge/tests/default-handler/default-handler-with-basepath.test.ts @@ -83,7 +83,7 @@ describe("Lambda@Edge", () => { authMethod: "origin-access-identity", domainName: "my-bucket.s3.amazonaws.com", path: "/basepath/static-pages/build-id", - region: "us-east-1" + region: "us-west-2" } }); expect(request.uri).toEqual(expectedPage); @@ -126,7 +126,7 @@ describe("Lambda@Edge", () => { authMethod: "origin-access-identity", domainName: "my-bucket.s3.amazonaws.com", path: "/basepath/public", - region: "us-east-1" + region: "us-west-2" } }); expect(request.uri).toEqual("/manifest.json"); @@ -234,7 +234,7 @@ describe("Lambda@Edge", () => { authMethod: "origin-access-identity", domainName: "my-bucket.s3.amazonaws.com", path: "/basepath", - region: "us-east-1" + region: "us-west-2" } }); expect(request.uri).toEqual(expectedUri); @@ -242,11 +242,11 @@ describe("Lambda@Edge", () => { ); }); - it("uses default s3 endpoint when bucket region is us-east-1", async () => { + it("uses default s3 endpoint when bucket region is us-west-2", async () => { const event = createCloudFrontEvent({ uri: "/basepath/terms", host: "mydistribution.cloudfront.net", - s3Region: "us-east-1" + s3Region: "us-west-2" }); const result = await handler(event); @@ -263,7 +263,7 @@ describe("Lambda@Edge", () => { expect(request.headers.host[0].value).toEqual("my-bucket.s3.amazonaws.com"); }); - it("uses regional endpoint for static page when bucket region is not us-east-1", async () => { + it("uses regional endpoint for static page when bucket region is not us-west-2", async () => { const event = createCloudFrontEvent({ uri: "/basepath/terms", host: "mydistribution.cloudfront.net", @@ -291,7 +291,7 @@ describe("Lambda@Edge", () => { ); }); - it("uses regional endpoint for public asset when bucket region is not us-east-1", async () => { + it("uses regional endpoint for public asset when bucket region is not us-west-2", async () => { const event = createCloudFrontEvent({ uri: "/basepath/favicon.ico", host: "mydistribution.cloudfront.net", @@ -356,7 +356,7 @@ describe("Lambda@Edge", () => { authMethod: "origin-access-identity", domainName: "my-bucket.s3.amazonaws.com", path: "/basepath/static-pages/build-id", - region: "us-east-1" + region: "us-west-2" } }); expect(request.uri).toEqual("/404.html"); diff --git a/packages/libs/lambda-at-edge/tests/default-handler/default-handler.test.ts b/packages/libs/lambda-at-edge/tests/default-handler/default-handler.test.ts index b613c56292..7a1f3f1494 100644 --- a/packages/libs/lambda-at-edge/tests/default-handler/default-handler.test.ts +++ b/packages/libs/lambda-at-edge/tests/default-handler/default-handler.test.ts @@ -106,7 +106,7 @@ describe("Lambda@Edge", () => { authMethod: "origin-access-identity", domainName: "my-bucket.s3.amazonaws.com", path: "/static-pages/build-id", - region: "us-east-1" + region: "us-west-2" } }); expect(request.uri).toEqual(expectedPage); @@ -155,7 +155,7 @@ describe("Lambda@Edge", () => { authMethod: "origin-access-identity", domainName: "my-bucket.s3.amazonaws.com", path: "/public", - region: "us-east-1" + region: "us-west-2" } }); expect(request.uri).toEqual(path); @@ -271,7 +271,7 @@ describe("Lambda@Edge", () => { authMethod: "origin-access-identity", domainName: "my-bucket.s3.amazonaws.com", path: "", - region: "us-east-1" + region: "us-west-2" } }); expect(request.uri).toEqual(expectedUri); @@ -426,11 +426,11 @@ describe("Lambda@Edge", () => { }); }); - it("uses default s3 endpoint when bucket region is us-east-1", async () => { + it("uses default s3 endpoint when bucket region is us-west-2", async () => { const event = createCloudFrontEvent({ uri: "/terms", host: "mydistribution.cloudfront.net", - s3Region: "us-east-1" + s3Region: "us-west-2" }); const result = await handler(event); @@ -447,7 +447,7 @@ describe("Lambda@Edge", () => { expect(request.headers.host[0].value).toEqual("my-bucket.s3.amazonaws.com"); }); - it("uses regional endpoint for static page when bucket region is not us-east-1", async () => { + it("uses regional endpoint for static page when bucket region is not us-west-2", async () => { const event = createCloudFrontEvent({ uri: "/terms", host: "mydistribution.cloudfront.net", @@ -475,7 +475,7 @@ describe("Lambda@Edge", () => { ); }); - it("uses regional endpoint for public asset when bucket region is not us-east-1", async () => { + it("uses regional endpoint for public asset when bucket region is not us-west-2", async () => { const event = createCloudFrontEvent({ uri: "/favicon.ico", host: "mydistribution.cloudfront.net", diff --git a/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler-with-locales.test.ts b/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler-with-locales.test.ts index c8e0b40c2e..7030b337db 100644 --- a/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler-with-locales.test.ts +++ b/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler-with-locales.test.ts @@ -92,7 +92,7 @@ describe("Regeneration Handler", () => { basePath: undefined, bucketName: "my-bucket", cloudFrontEventRequest: event.Records[0].cf.request, - region: "us-east-1", + region: "us-west-2", pageS3Path: `static-pages/build-id${locale}/preview.js`, pagePath: "pages/preview.js" }) diff --git a/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler.test.ts b/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler.test.ts index 763f76fa1a..d3a99977a9 100644 --- a/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler.test.ts +++ b/packages/libs/lambda-at-edge/tests/regeneration-handler/regeneration-handler.test.ts @@ -91,7 +91,7 @@ describe("Regeneration Handler", () => { basePath, bucketName: "my-bucket", cloudFrontEventRequest: event.Records[0].cf.request, - region: "us-east-1", + region: "us-west-2", pageS3Path: `static-pages/build-id/preview.js`, pagePath: "pages/preview.js" }) diff --git a/packages/libs/lambda-at-edge/tests/s3/s3StorePage.test.ts b/packages/libs/lambda-at-edge/tests/s3/s3StorePage.test.ts index f4ec829f40..be879b26e6 100644 --- a/packages/libs/lambda-at-edge/tests/s3/s3StorePage.test.ts +++ b/packages/libs/lambda-at-edge/tests/s3/s3StorePage.test.ts @@ -26,7 +26,7 @@ describe("S3StorePage Tests", () => { bucketName: "test", html: "test", buildId: "test-build-id", - region: "us-east-1", + region: "us-west-2", pageData: {} }); diff --git a/packages/libs/lambda-at-edge/tests/test-utils.ts b/packages/libs/lambda-at-edge/tests/test-utils.ts index a8eefaa4d1..05d8aadb08 100644 --- a/packages/libs/lambda-at-edge/tests/test-utils.ts +++ b/packages/libs/lambda-at-edge/tests/test-utils.ts @@ -69,7 +69,7 @@ export const createCloudFrontEvent = ({ origin: { s3: { path: "", - region: s3Region || "us-east-1", + region: s3Region || "us-west-2", authMethod: "origin-access-identity", domainName: s3DomainName || "my-bucket.s3.amazonaws.com" } diff --git a/packages/libs/lambda-at-edge/tests/utils/triggerStaticRegeneration.test.ts b/packages/libs/lambda-at-edge/tests/utils/triggerStaticRegeneration.test.ts index 589b504a5e..c1abcde12c 100644 --- a/packages/libs/lambda-at-edge/tests/utils/triggerStaticRegeneration.test.ts +++ b/packages/libs/lambda-at-edge/tests/utils/triggerStaticRegeneration.test.ts @@ -20,8 +20,8 @@ describe("triggerStaticRegeneration()", () => { uri: "index.html", origin: { s3: { - region: "us-east-1", - domainName: `my-bucket.s3.us-east-1.amazonaws.com` + region: "us-west-2", + domainName: `my-bucket.s3.us-west-2.amazonaws.com` } } } as AWSLambda.CloudFrontRequest, @@ -104,9 +104,9 @@ describe("triggerStaticRegeneration()", () => { }); expect(staticRegeneratedResponse.throttle).toBe(false); expect(mockSendMessageCommand).toHaveBeenCalledWith({ - QueueUrl: `https://sqs.us-east-1.amazonaws.com/my-bucket.fifo`, + QueueUrl: `https://sqs.us-west-2.amazonaws.com/my-bucket.fifo`, MessageBody: JSON.stringify({ - region: "us-east-1", + region: "us-west-2", bucketName: "my-bucket", pageS3Path: "/static-pages/build-id/index.html", cloudFrontEventRequest: options.request, diff --git a/packages/libs/lambda/src/deploy/cdktf/nextJsLambdaApp.ts b/packages/libs/lambda/src/deploy/cdktf/nextJsLambdaApp.ts index 9b2b778511..401359f6ad 100644 --- a/packages/libs/lambda/src/deploy/cdktf/nextJsLambdaApp.ts +++ b/packages/libs/lambda/src/deploy/cdktf/nextJsLambdaApp.ts @@ -16,7 +16,7 @@ import { CoreBuildOptions } from "@sls-next/core"; import { LambdaBuildOptions } from "src/types"; const DEFAULT_OUTPUT_DIR = ".serverless_nextjs"; -const DEFAULT_AWS_REGION = "us-east-1"; +const DEFAULT_AWS_REGION = "us-west-2"; export type NextJsLambdaAppProps = { /** @@ -26,7 +26,7 @@ export type NextJsLambdaAppProps = { appName: string; /** * The AWS region to provision the Next.js app infrastructure. - * If omitted, it will default to us-east-1. + * If omitted, it will default to us-west-2. */ region?: string; coreBuildOptions?: CoreBuildOptions; @@ -141,7 +141,7 @@ export class NextJsLambdaApp extends Construct { type: "zip" }); - // Create infrastructure all within the same region, or us-east-1 if not specified + // Create infrastructure all within the same region, or us-west-2 if not specified new AwsProvider(this, "AWS", { region: this.props.region ?? DEFAULT_AWS_REGION }); diff --git a/packages/libs/lambda/tests/build/builder.test.ts b/packages/libs/lambda/tests/build/builder.test.ts index 34af56e1e8..1c4a0c5fa6 100644 --- a/packages/libs/lambda/tests/build/builder.test.ts +++ b/packages/libs/lambda/tests/build/builder.test.ts @@ -11,7 +11,7 @@ describe("Builder Tests", () => { const lambdaBuildOptions: LambdaBuildOptions = { bucketName: "test-bucket", - bucketRegion: "us-east-1" + bucketRegion: "us-west-2" }; beforeEach(() => { diff --git a/packages/libs/s3-static-assets/tests/delete-old-static-assets.test.ts b/packages/libs/s3-static-assets/tests/delete-old-static-assets.test.ts index 4121bc7036..2c8f463730 100644 --- a/packages/libs/s3-static-assets/tests/delete-old-static-assets.test.ts +++ b/packages/libs/s3-static-assets/tests/delete-old-static-assets.test.ts @@ -14,7 +14,7 @@ jest.mock("aws-sdk", () => require("./aws-sdk.mock")); const deleteOldAssets = (basePath?: string): Promise => { return deleteOldStaticAssets({ bucketName: "test-bucket-name", - bucketRegion: "us-east-1", + bucketRegion: "us-west-2", basePath: basePath || "", credentials: { accessKeyId: "fake-access-key", @@ -114,11 +114,11 @@ describe.each` expect(AWS.S3).toBeCalledWith({ accessKeyId: "fake-access-key", - endpoint: "https://s3.us-east-1.amazonaws.com", + endpoint: "https://s3.us-west-2.amazonaws.com", s3BucketEndpoint: false, secretAccessKey: "fake-secret-key", sessionToken: "fake-session-token", - region: "us-east-1" + region: "us-west-2" }); expect(mockDeleteObjects).toBeCalledTimes(2); diff --git a/packages/libs/s3-static-assets/tests/upload-assets-from-build.test.ts b/packages/libs/s3-static-assets/tests/upload-assets-from-build.test.ts index eb08dcd726..4433a30c56 100644 --- a/packages/libs/s3-static-assets/tests/upload-assets-from-build.test.ts +++ b/packages/libs/s3-static-assets/tests/upload-assets-from-build.test.ts @@ -35,7 +35,7 @@ const upload = ( return uploadStaticAssetsFromBuild({ bucketName: "test-bucket-name", - bucketRegion: "us-east-1", + bucketRegion: "us-west-2", basePath: basePath || "", nextConfigDir: path.join(__dirname, nextConfigDir), nextStaticDir: staticDir, @@ -63,8 +63,8 @@ describe("Upload tests from build", () => { await upload("./fixtures/app-basic-upload-from-build"); expect(AWS.S3).toBeCalledWith({ - region: "us-east-1", - endpoint: "https://s3.us-east-1.amazonaws.com", + region: "us-west-2", + endpoint: "https://s3.us-west-2.amazonaws.com", s3BucketEndpoint: false, accessKeyId: "fake-access-key", secretAccessKey: "fake-secret-key", @@ -81,8 +81,8 @@ describe("Upload tests from build", () => { expect(AWS.S3).toBeCalledTimes(2); expect(AWS.S3).toBeCalledWith({ - region: "us-east-1", - endpoint: "https://s3.us-east-1.amazonaws.com", + region: "us-west-2", + endpoint: "https://s3.us-west-2.amazonaws.com", s3BucketEndpoint: false, accessKeyId: "fake-access-key", secretAccessKey: "fake-secret-key", diff --git a/packages/serverless-components/aws-cloudfront/CHANGELOG.md b/packages/serverless-components/aws-cloudfront/CHANGELOG.md index 11b65f05fd..9a23eda5c5 100644 --- a/packages/serverless-components/aws-cloudfront/CHANGELOG.md +++ b/packages/serverless-components/aws-cloudfront/CHANGELOG.md @@ -450,7 +450,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ### Bug Fixes -- **serverless-component:** fixes 307 errors when using bucket region outside us-east-1 ([#495](https://github.com/serverless-nextjs/serverless-next.js/issues/495)) ([561e05f](https://github.com/serverless-nextjs/serverless-next.js/commit/561e05f9ba9763fab4185b34adcde61dfcbb0a21)) +- **serverless-component:** fixes 307 errors when using bucket region outside us-west-2 ([#495](https://github.com/serverless-nextjs/serverless-next.js/issues/495)) ([561e05f](https://github.com/serverless-nextjs/serverless-next.js/commit/561e05f9ba9763fab4185b34adcde61dfcbb0a21)) ## [1.0.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/aws-cloudfront@1.0.1-alpha.0...@sls-next/aws-cloudfront@1.0.1) (2020-07-11) diff --git a/packages/serverless-components/aws-cloudfront/README.md b/packages/serverless-components/aws-cloudfront/README.md index 30ab28347d..010c59ba32 100644 --- a/packages/serverless-components/aws-cloudfront/README.md +++ b/packages/serverless-components/aws-cloudfront/README.md @@ -52,7 +52,7 @@ distribution: component: '@serverless/aws-cloudfront' inputs: distributionId: XYZEXAMPLE #optional - region: us-east-1 + region: us-west-2 enabled: true # optional comment: 'My distribution' # optional aliases: ['foo.example.com', 'bar.example.com'] @@ -77,7 +77,7 @@ distribution: compress: true # optional fieldLevelEncryptionId: '123' # optional lambda@edge: # added to cloudfront default cache behavior - viewer-request: arn:aws:lambda:us-east-1:123:function:myFunc:version + viewer-request: arn:aws:lambda:us-west-2:123:function:myFunc:version origins: - https://my-bucket.s3.amazonaws.com ``` @@ -139,7 +139,7 @@ distribution: /sample/path: ttl: 10 lambda@edge: - viewer-request: arn:aws:lambda:us-east-1:123:function:myFunc:version # lambda ARN including version + viewer-request: arn:aws:lambda:us-west-2:123:function:myFunc:version # lambda ARN including version ``` #### Private S3 Content diff --git a/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/custom-url-origin.test.ts.snap b/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/custom-url-origin.test.ts.snap index c488ee8347..2bae4b0c4e 100644 --- a/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/custom-url-origin.test.ts.snap +++ b/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/custom-url-origin.test.ts.snap @@ -60,7 +60,7 @@ Object { Object { "EventType": "origin-request", "IncludeBody": true, - "LambdaFunctionARN": "arn:aws:lambda:us-east-1:123:function:originRequestFunction", + "LambdaFunctionARN": "arn:aws:lambda:us-west-2:123:function:originRequestFunction", }, ], "Quantity": 1, diff --git a/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/lambda-at-edge.test.ts.snap b/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/lambda-at-edge.test.ts.snap index 11ad8d9afd..7533c0329d 100644 --- a/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/lambda-at-edge.test.ts.snap +++ b/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/lambda-at-edge.test.ts.snap @@ -47,22 +47,22 @@ Object { Object { "EventType": "viewer-request", "IncludeBody": true, - "LambdaFunctionARN": "arn:aws:lambda:us-east-1:123:function:viewerRequestFunction", + "LambdaFunctionARN": "arn:aws:lambda:us-west-2:123:function:viewerRequestFunction", }, Object { "EventType": "origin-request", "IncludeBody": true, - "LambdaFunctionARN": "arn:aws:lambda:us-east-1:123:function:originRequestFunction", + "LambdaFunctionARN": "arn:aws:lambda:us-west-2:123:function:originRequestFunction", }, Object { "EventType": "origin-response", "IncludeBody": undefined, - "LambdaFunctionARN": "arn:aws:lambda:us-east-1:123:function:originResponseFunction", + "LambdaFunctionARN": "arn:aws:lambda:us-west-2:123:function:originResponseFunction", }, Object { "EventType": "viewer-response", "IncludeBody": undefined, - "LambdaFunctionARN": "arn:aws:lambda:us-east-1:123:function:viewerResponseFunction", + "LambdaFunctionARN": "arn:aws:lambda:us-west-2:123:function:viewerResponseFunction", }, ], "Quantity": 4, diff --git a/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/s3-origin.test.ts.snap b/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/s3-origin.test.ts.snap index fd38343b59..3a46d05e82 100644 --- a/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/s3-origin.test.ts.snap +++ b/packages/serverless-components/aws-cloudfront/__tests__/__snapshots__/s3-origin.test.ts.snap @@ -457,7 +457,7 @@ Object { } `; -exports[`S3 origins when origin is outside of us-east-1 and contains dots should use the origin's host at the DomainName 1`] = ` +exports[`S3 origins when origin is outside of us-west-2 and contains dots should use the origin's host at the DomainName 1`] = ` Object { "DistributionConfigWithTags": Object { "DistributionConfig": Object { @@ -552,7 +552,7 @@ Object { } `; -exports[`S3 origins when origin is outside of us-east-1 and contains dots updates distribution 1`] = ` +exports[`S3 origins when origin is outside of us-west-2 and contains dots updates distribution 1`] = ` Object { "DistributionConfig": Object { "CacheBehaviors": Object { @@ -638,7 +638,7 @@ Object { } `; -exports[`S3 origins when origin is outside of us-east-1 and contains s3 and dots should use the origin's host at the DomainName 1`] = ` +exports[`S3 origins when origin is outside of us-west-2 and contains s3 and dots should use the origin's host at the DomainName 1`] = ` Object { "DistributionConfigWithTags": Object { "DistributionConfig": Object { @@ -733,7 +733,7 @@ Object { } `; -exports[`S3 origins when origin is outside of us-east-1 and contains s3 and dots updates distribution 1`] = ` +exports[`S3 origins when origin is outside of us-west-2 and contains s3 and dots updates distribution 1`] = ` Object { "DistributionConfig": Object { "CacheBehaviors": Object { @@ -819,7 +819,7 @@ Object { } `; -exports[`S3 origins when origin is outside of us-east-1 should use the origin's host at the DomainName 1`] = ` +exports[`S3 origins when origin is outside of us-west-2 should use the origin's host at the DomainName 1`] = ` Object { "DistributionConfigWithTags": Object { "DistributionConfig": Object { @@ -914,7 +914,7 @@ Object { } `; -exports[`S3 origins when origin is outside of us-east-1 updates distribution 1`] = ` +exports[`S3 origins when origin is outside of us-west-2 updates distribution 1`] = ` Object { "DistributionConfig": Object { "CacheBehaviors": Object { diff --git a/packages/serverless-components/aws-cloudfront/__tests__/custom-url-origin.test.ts b/packages/serverless-components/aws-cloudfront/__tests__/custom-url-origin.test.ts index c0e7a0e967..5f745e9185 100644 --- a/packages/serverless-components/aws-cloudfront/__tests__/custom-url-origin.test.ts +++ b/packages/serverless-components/aws-cloudfront/__tests__/custom-url-origin.test.ts @@ -44,7 +44,7 @@ describe("Input origin as a custom url", () => { maxTTL: 31536000, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123:function:originRequestFunction" + "arn:aws:lambda:us-west-2:123:function:originRequestFunction" } }, origins: ["https://mycustomorigin.com"] diff --git a/packages/serverless-components/aws-cloudfront/__tests__/general-options.test.ts b/packages/serverless-components/aws-cloudfront/__tests__/general-options.test.ts index 14ff7c027d..0da96e11d8 100644 --- a/packages/serverless-components/aws-cloudfront/__tests__/general-options.test.ts +++ b/packages/serverless-components/aws-cloudfront/__tests__/general-options.test.ts @@ -195,7 +195,7 @@ describe("General options propagation", () => { // Create await component.default({ webACLId: - "arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a", + "arn:aws:wafv2:us-west-2:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a", origins }); @@ -204,7 +204,7 @@ describe("General options propagation", () => { DistributionConfigWithTags: expect.objectContaining({ DistributionConfig: expect.objectContaining({ WebACLId: - "arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" + "arn:aws:wafv2:us-west-2:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" }) }) }) @@ -213,7 +213,7 @@ describe("General options propagation", () => { // Update await component.default({ webACLId: - "arn:aws:wafv2:us-east-1:123456789012:global/webacl/UpdatedWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a", + "arn:aws:wafv2:us-west-2:123456789012:global/webacl/UpdatedWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a", origins }); @@ -221,7 +221,7 @@ describe("General options propagation", () => { expect.objectContaining({ DistributionConfig: expect.objectContaining({ WebACLId: - "arn:aws:wafv2:us-east-1:123456789012:global/webacl/UpdatedWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" + "arn:aws:wafv2:us-west-2:123456789012:global/webacl/UpdatedWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" }) }) ); @@ -231,7 +231,7 @@ describe("General options propagation", () => { // Create await component.default({ webACLId: - "arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a", + "arn:aws:wafv2:us-west-2:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a", origins }); @@ -240,7 +240,7 @@ describe("General options propagation", () => { DistributionConfigWithTags: expect.objectContaining({ DistributionConfig: expect.objectContaining({ WebACLId: - "arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" + "arn:aws:wafv2:us-west-2:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" }) }) }) @@ -385,7 +385,7 @@ describe("General options propagation", () => { certificate: { cloudFrontDefaultCertificate: false, acmCertificateArn: - "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" + "arn:aws:acm:us-west-2:123456789012:certificate/12345678-1234-1234-1234-123456789012" }, origins }); @@ -397,7 +397,7 @@ describe("General options propagation", () => { ViewerCertificate: { CloudFrontDefaultCertificate: false, ACMCertificateArn: - "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012", + "arn:aws:acm:us-west-2:123456789012:certificate/12345678-1234-1234-1234-123456789012", SSLSupportMethod: "sni-only", MinimumProtocolVersion: "TLSv1.2_2019" } @@ -411,7 +411,7 @@ describe("General options propagation", () => { certificate: { cloudFrontDefaultCertificate: false, acmCertificateArn: - "arn:aws:acm:us-east-1:123456789012:certificate/updated" + "arn:aws:acm:us-west-2:123456789012:certificate/updated" }, origins }); @@ -422,7 +422,7 @@ describe("General options propagation", () => { ViewerCertificate: { CloudFrontDefaultCertificate: false, ACMCertificateArn: - "arn:aws:acm:us-east-1:123456789012:certificate/updated", + "arn:aws:acm:us-west-2:123456789012:certificate/updated", SSLSupportMethod: "sni-only", MinimumProtocolVersion: "TLSv1.2_2019" } diff --git a/packages/serverless-components/aws-cloudfront/__tests__/lambda-at-edge.test.ts b/packages/serverless-components/aws-cloudfront/__tests__/lambda-at-edge.test.ts index ba8e05020d..1f99f25684 100644 --- a/packages/serverless-components/aws-cloudfront/__tests__/lambda-at-edge.test.ts +++ b/packages/serverless-components/aws-cloudfront/__tests__/lambda-at-edge.test.ts @@ -32,13 +32,13 @@ describe("Input origin as a custom url", () => { maxTTL: 10, "lambda@edge": { "viewer-request": - "arn:aws:lambda:us-east-1:123:function:viewerRequestFunction", + "arn:aws:lambda:us-west-2:123:function:viewerRequestFunction", "origin-request": - "arn:aws:lambda:us-east-1:123:function:originRequestFunction", + "arn:aws:lambda:us-west-2:123:function:originRequestFunction", "origin-response": - "arn:aws:lambda:us-east-1:123:function:originResponseFunction", + "arn:aws:lambda:us-west-2:123:function:originResponseFunction", "viewer-response": - "arn:aws:lambda:us-east-1:123:function:viewerResponseFunction" + "arn:aws:lambda:us-west-2:123:function:viewerResponseFunction" } } } @@ -54,24 +54,24 @@ describe("Input origin as a custom url", () => { { EventType: "viewer-request", LambdaFunctionARN: - "arn:aws:lambda:us-east-1:123:function:viewerRequestFunction", + "arn:aws:lambda:us-west-2:123:function:viewerRequestFunction", IncludeBody: true }, { EventType: "origin-request", LambdaFunctionARN: - "arn:aws:lambda:us-east-1:123:function:originRequestFunction", + "arn:aws:lambda:us-west-2:123:function:originRequestFunction", IncludeBody: true }, { EventType: "origin-response", LambdaFunctionARN: - "arn:aws:lambda:us-east-1:123:function:originResponseFunction" + "arn:aws:lambda:us-west-2:123:function:originResponseFunction" }, { EventType: "viewer-response", LambdaFunctionARN: - "arn:aws:lambda:us-east-1:123:function:viewerResponseFunction" + "arn:aws:lambda:us-west-2:123:function:viewerResponseFunction" } ] } @@ -95,7 +95,7 @@ describe("Input origin as a custom url", () => { maxTTL: 10, "lambda@edge": { "invalid-eventtype": - "arn:aws:lambda:us-east-1:123:function:viewerRequestFunction" + "arn:aws:lambda:us-west-2:123:function:viewerRequestFunction" } } } diff --git a/packages/serverless-components/aws-cloudfront/__tests__/s3-origin.test.ts b/packages/serverless-components/aws-cloudfront/__tests__/s3-origin.test.ts index 23c4aadca6..75bc75b063 100644 --- a/packages/serverless-components/aws-cloudfront/__tests__/s3-origin.test.ts +++ b/packages/serverless-components/aws-cloudfront/__tests__/s3-origin.test.ts @@ -246,7 +246,7 @@ describe("S3 origins", () => { }); }); - describe("when origin is outside of us-east-1", () => { + describe("when origin is outside of us-west-2", () => { it("should use the origin's host at the DomainName", async () => { await component.default({ origins: ["https://mybucket.s3.eu-west-1.amazonaws.com"] @@ -301,7 +301,7 @@ describe("S3 origins", () => { }); }); - describe("when origin is outside of us-east-1 and contains dots", () => { + describe("when origin is outside of us-west-2 and contains dots", () => { it("should use the origin's host at the DomainName", async () => { await component.default({ origins: ["https://mybucket.with.dots.s3.eu-west-1.amazonaws.com"] @@ -356,7 +356,7 @@ describe("S3 origins", () => { }); }); - describe("when origin is outside of us-east-1 and contains s3 and dots", () => { + describe("when origin is outside of us-west-2 and contains s3 and dots", () => { it("should use the origin's host at the DomainName", async () => { await component.default({ origins: ["https://mybucket.s3.s3.s3.eu-west-1.amazonaws.com"] diff --git a/packages/serverless-components/aws-cloudfront/src/component.ts b/packages/serverless-components/aws-cloudfront/src/component.ts index 12d3a45011..25b23fc05f 100644 --- a/packages/serverless-components/aws-cloudfront/src/component.ts +++ b/packages/serverless-components/aws-cloudfront/src/component.ts @@ -23,8 +23,8 @@ class CloudFront extends Component { async default(inputs: any = {}) { this.context.status("Deploying"); - inputs.region = inputs.region ?? "us-east-1"; - inputs.bucketRegion = inputs.bucketRegion ?? "us-east-1"; // S3 client needs to be specific to the bucket region + inputs.region = inputs.region ?? "us-west-2"; + inputs.bucketRegion = inputs.bucketRegion ?? "us-west-2"; // S3 client needs to be specific to the bucket region inputs.enabled = inputs.enabled !== false; inputs.comment = inputs.comment === null || inputs.comment === undefined diff --git a/packages/serverless-components/aws-cloudfront/src/getOriginConfig.ts b/packages/serverless-components/aws-cloudfront/src/getOriginConfig.ts index b93427b398..3d399fc2bd 100644 --- a/packages/serverless-components/aws-cloudfront/src/getOriginConfig.ts +++ b/packages/serverless-components/aws-cloudfront/src/getOriginConfig.ts @@ -78,8 +78,8 @@ export const getOriginConfig = ( Quantity: 1, Items: ["TLSv1.2"] }, - OriginReadTimeout: 30, - OriginKeepaliveTimeout: 5 + OriginReadTimeout: 60, + OriginKeepaliveTimeout: 60 }; } diff --git a/packages/serverless-components/aws-lambda/README.md b/packages/serverless-components/aws-lambda/README.md index d6a844ecbd..6d551a1bbd 100644 --- a/packages/serverless-components/aws-lambda/README.md +++ b/packages/serverless-components/aws-lambda/README.md @@ -63,7 +63,7 @@ myFunction: runtime: nodejs8.10 env: TABLE_NAME: my-table - region: us-east-1 + region: us-west-2 # if you'd like to include any shims shims: diff --git a/packages/serverless-components/aws-lambda/__tests__/publishVersion.test.ts b/packages/serverless-components/aws-lambda/__tests__/publishVersion.test.ts index 0a26950a5c..03ac3287cd 100644 --- a/packages/serverless-components/aws-lambda/__tests__/publishVersion.test.ts +++ b/packages/serverless-components/aws-lambda/__tests__/publishVersion.test.ts @@ -43,7 +43,7 @@ describe("publishVersion", () => { arn: "arn:aws:iam::123456789012:role/xyz" }); mockCreateFunctionPromise.mockResolvedValueOnce({ - FunctionArn: "arn:aws:lambda:us-east-1:123456789012:function:my-func", + FunctionArn: "arn:aws:lambda:us-west-2:123456789012:function:my-func", CodeSha256: "LQT0VA=" }); mockGetFunctionPromise.mockResolvedValue({ @@ -106,7 +106,7 @@ describe("publishVersion", () => { }); mockUpdateFunctionConfigurationPromise.mockResolvedValueOnce({ CodeSha256: "XYZ0VA=", - FunctionArn: "arn:aws:lambda:us-east-1:123456789012:function:my-func" + FunctionArn: "arn:aws:lambda:us-west-2:123456789012:function:my-func" }); mockListTagsPromise.mockResolvedValueOnce({ Tags: { foo: "bar" } @@ -131,16 +131,16 @@ describe("publishVersion", () => { }); expect(mockListTags).toBeCalledWith({ - Resource: "arn:aws:lambda:us-east-1:123456789012:function:my-func" + Resource: "arn:aws:lambda:us-west-2:123456789012:function:my-func" }); expect(mockUntagResource).toBeCalledWith({ - Resource: "arn:aws:lambda:us-east-1:123456789012:function:my-func", + Resource: "arn:aws:lambda:us-west-2:123456789012:function:my-func", TagKeys: ["foo"] }); expect(mockTagResource).toBeCalledWith({ - Resource: "arn:aws:lambda:us-east-1:123456789012:function:my-func", + Resource: "arn:aws:lambda:us-west-2:123456789012:function:my-func", Tags: { new: "tag" } }); diff --git a/packages/serverless-components/aws-lambda/__tests__/removeLambdaVersions.test.ts b/packages/serverless-components/aws-lambda/__tests__/removeLambdaVersions.test.ts index 097e8c5aa5..48c5f95438 100644 --- a/packages/serverless-components/aws-lambda/__tests__/removeLambdaVersions.test.ts +++ b/packages/serverless-components/aws-lambda/__tests__/removeLambdaVersions.test.ts @@ -53,7 +53,7 @@ describe("publishVersion", () => { } }, "test-function", - "us-east-1" + "us-west-2" ); expect(mockDeleteFunction).toBeCalledWith({ diff --git a/packages/serverless-components/aws-lambda/__tests__/waitLambdaReady.test.ts b/packages/serverless-components/aws-lambda/__tests__/waitLambdaReady.test.ts index 85e151c641..6c5aed0b5f 100644 --- a/packages/serverless-components/aws-lambda/__tests__/waitLambdaReady.test.ts +++ b/packages/serverless-components/aws-lambda/__tests__/waitLambdaReady.test.ts @@ -30,7 +30,7 @@ describe("waitLambdaReady", () => { } }, "test-function", - "us-east-1", + "us-west-2", 1 ); diff --git a/packages/serverless-components/aws-lambda/src/component.ts b/packages/serverless-components/aws-lambda/src/component.ts index 6eaf51b5a1..b43b4ddabe 100644 --- a/packages/serverless-components/aws-lambda/src/component.ts +++ b/packages/serverless-components/aws-lambda/src/component.ts @@ -39,7 +39,7 @@ const defaults = { bucket: undefined, shims: [], handler: "handler.hello", - runtime: "nodejs10.x", + runtime: "nodejs18.x", env: {}, region: "us-east-1", tags: undefined diff --git a/packages/serverless-components/aws-s3/README.md b/packages/serverless-components/aws-s3/README.md index d0748ac38f..a5432aae80 100644 --- a/packages/serverless-components/aws-s3/README.md +++ b/packages/serverless-components/aws-s3/README.md @@ -42,7 +42,7 @@ myBucket: component: "@serverless/aws-s3" inputs: accelerated: false # default is true. Enables upload acceleartion for the bucket - region: us-east-1 + region: us-west-2 cors: CORSRules: - AllowedHeaders: diff --git a/packages/serverless-components/aws-s3/src/component.ts b/packages/serverless-components/aws-s3/src/component.ts index 4adc35c783..4042335882 100644 --- a/packages/serverless-components/aws-s3/src/component.ts +++ b/packages/serverless-components/aws-s3/src/component.ts @@ -17,7 +17,7 @@ import { const defaults = { name: undefined, accelerated: true, - region: "us-east-1", + region: "us-west-2", tags: undefined }; diff --git a/packages/serverless-components/aws-sqs/serverless.js b/packages/serverless-components/aws-sqs/serverless.js index 7078f34a00..4a4d14e83c 100644 --- a/packages/serverless-components/aws-sqs/serverless.js +++ b/packages/serverless-components/aws-sqs/serverless.js @@ -17,7 +17,7 @@ const outputsList = ["arn", "url"]; const defaults = { name: "serverless", - region: "us-east-1", + region: "us-west-2", tags: undefined }; diff --git a/packages/serverless-components/domain/src/component.ts b/packages/serverless-components/domain/src/component.ts index b6970278d2..1da7740e0b 100644 --- a/packages/serverless-components/domain/src/component.ts +++ b/packages/serverless-components/domain/src/component.ts @@ -22,7 +22,7 @@ export default class Domain extends Component { this.context.debug("Validating inputs."); - inputs.region = inputs.region || "us-east-1"; + inputs.region = inputs.region || "us-west-2"; inputs.privateZone = inputs.privateZone || false; inputs.domainType = inputs.domainType || "both"; inputs.defaultCloudfrontInputs = inputs.defaultCloudfrontInputs || {}; diff --git a/packages/serverless-components/domain/src/utils.ts b/packages/serverless-components/domain/src/utils.ts index bfa370ad2e..44618eadff 100644 --- a/packages/serverless-components/domain/src/utils.ts +++ b/packages/serverless-components/domain/src/utils.ts @@ -7,7 +7,7 @@ const HOSTED_ZONE_ID = "Z2FDTNDATAQYW2"; // this is a constant that you can get * Get Clients * - Gets AWS SDK clients to use within this Component */ -const getClients = (credentials, region = "us-east-1") => { +const getClients = (credentials, region = "us-west-2") => { if (AWS && AWS.config) { AWS.config.update({ maxRetries: parseInt(process.env.SLS_NEXT_MAX_RETRIES || "10"), @@ -22,7 +22,7 @@ const getClients = (credentials, region = "us-east-1") => { const acm = new AWS.ACM({ credentials, - region: "us-east-1" // ACM must be in us-east-1 + region: "us-west-2" // ACM must be in us-west-2 }); const cf = new AWS.CloudFront({ diff --git a/packages/serverless-components/nextjs-cdk-construct/__tests__/construct.test.ts b/packages/serverless-components/nextjs-cdk-construct/__tests__/construct.test.ts index 41eb6891aa..966ca81c4d 100644 --- a/packages/serverless-components/nextjs-cdk-construct/__tests__/construct.test.ts +++ b/packages/serverless-components/nextjs-cdk-construct/__tests__/construct.test.ts @@ -211,7 +211,7 @@ describe("CDK Construct", () => { const certificate = Certificate.fromCertificateArn( stack, "Cert", - "arn:partition:service:us-east-1:1234578:abc" + "arn:partition:service:us-west-2:1234578:abc" ); const domainName = "domain.com"; const hostedZone = HostedZone.fromHostedZoneAttributes(stack, "Zone", { @@ -234,7 +234,7 @@ describe("CDK Construct", () => { DistributionConfig: { Aliases: ["domain.com"], ViewerCertificate: { - AcmCertificateArn: "arn:partition:service:us-east-1:1234578:abc" + AcmCertificateArn: "arn:partition:service:us-west-2:1234578:abc" } } } @@ -296,7 +296,7 @@ describe("CDK Construct", () => { const certificate = Certificate.fromCertificateArn( stack, "Cert", - "arn:partition:service:us-east-1:1234578:abc" + "arn:partition:service:us-west-2:1234578:abc" ); const domainName = "domain.com"; new NextJSLambdaEdge(stack, "Stack", { @@ -315,7 +315,7 @@ describe("CDK Construct", () => { DistributionConfig: { Aliases: ["domain.com"], ViewerCertificate: { - AcmCertificateArn: "arn:partition:service:us-east-1:1234578:abc" + AcmCertificateArn: "arn:partition:service:us-west-2:1234578:abc" } } } diff --git a/packages/serverless-components/nextjs-cdk-construct/package.json b/packages/serverless-components/nextjs-cdk-construct/package.json index ba463b8749..39ea4ddd6a 100644 --- a/packages/serverless-components/nextjs-cdk-construct/package.json +++ b/packages/serverless-components/nextjs-cdk-construct/package.json @@ -29,6 +29,8 @@ }, "license": "MIT", "dependencies": { + "@aws-cdk/aws-ec2": "^1.156.0", + "@aws-cdk/aws-elasticloadbalancingv2": "^1.156.0", "@sls-next/core": "link:../../libs/core", "@sls-next/lambda-at-edge": "link:../../libs/lambda-at-edge", "fast-glob": "3.2.11", diff --git a/packages/serverless-components/nextjs-component/CHANGELOG.md b/packages/serverless-components/nextjs-component/CHANGELOG.md index 6d331deea3..a01ff2d4ff 100644 --- a/packages/serverless-components/nextjs-component/CHANGELOG.md +++ b/packages/serverless-components/nextjs-component/CHANGELOG.md @@ -1306,7 +1306,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ### Bug Fixes - **serverless-component:** fix "main" package.json property ([96d510d](https://github.com/serverless-nextjs/serverless-next.js/commit/96d510d3e21f6fe84c02425f2c8c6f311b90665f)) -- **serverless-component:** fixes 307 errors when using bucket region outside us-east-1 ([#495](https://github.com/serverless-nextjs/serverless-next.js/issues/495)) ([561e05f](https://github.com/serverless-nextjs/serverless-next.js/commit/561e05f9ba9763fab4185b34adcde61dfcbb0a21)) +- **serverless-component:** fixes 307 errors when using bucket region outside us-west-2 ([#495](https://github.com/serverless-nextjs/serverless-next.js/issues/495)) ([561e05f](https://github.com/serverless-nextjs/serverless-next.js/commit/561e05f9ba9763fab4185b34adcde61dfcbb0a21)) ## [1.15.1](https://github.com/serverless-nextjs/serverless-next.js/compare/@sls-next/serverless-component@1.15.0...@sls-next/serverless-component@1.15.1) (2020-07-11) diff --git a/packages/serverless-components/nextjs-component/__tests__/basepath.test.ts b/packages/serverless-components/nextjs-component/__tests__/basepath.test.ts index 5cbfb53f4e..f2e8bcab82 100644 --- a/packages/serverless-components/nextjs-component/__tests__/basepath.test.ts +++ b/packages/serverless-components/nextjs-component/__tests__/basepath.test.ts @@ -31,16 +31,16 @@ describe("basepath tests", () => { name: "bucket-xyz" }); mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:regeneration-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:regeneration-cachebehavior-func" }); mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:api-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:api-cachebehavior-func" }); mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:image-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:image-cachebehavior-func" }); mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:default-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:default-cachebehavior-func" }); mockLambdaPublish.mockResolvedValue({ version: "v1" @@ -50,7 +50,7 @@ describe("basepath tests", () => { url: "https://cloudfrontdistrib.amazonaws.com" }); mockSQS.mockResolvedValue({ - arn: "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo" + arn: "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo" }); const component = new NextjsComponent(); diff --git a/packages/serverless-components/nextjs-component/__tests__/custom-inputs.test.ts b/packages/serverless-components/nextjs-component/__tests__/custom-inputs.test.ts index 8c2ee44d7d..aae562e1a0 100644 --- a/packages/serverless-components/nextjs-component/__tests__/custom-inputs.test.ts +++ b/packages/serverless-components/nextjs-component/__tests__/custom-inputs.test.ts @@ -43,7 +43,7 @@ const mockServerlessComponentDependencies = ({ expectedDomain }) => { }); mockLambda.mockResolvedValue({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:my-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:my-func" }); mockLambdaPublish.mockResolvedValue({ @@ -59,7 +59,7 @@ const mockServerlessComponentDependencies = ({ expectedDomain }) => { }); mockSQS.mockResolvedValue({ - arn: "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo" + arn: "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo" }); }; @@ -86,7 +86,7 @@ describe("Custom inputs", () => { describe.each` inputRegion | expectedRegion - ${undefined} | ${"us-east-1"} + ${undefined} | ${"us-west-2"} ${"eu-west-2"} | ${"eu-west-2"} `(`When input region is $inputRegion`, ({ inputRegion, expectedRegion }) => { const fixturePath = path.join(__dirname, "./fixtures/generic-fixture"); @@ -745,9 +745,9 @@ describe("Custom inputs", () => { { origins: [ "http://some-origin", - "http://bucket-xyz.s3.us-east-1.amazonaws.com/relative", + "http://bucket-xyz.s3.us-west-2.amazonaws.com/relative", { url: "http://diff-origin" }, - { url: "http://bucket-xyz.s3.us-east-1.amazonaws.com/diff-relative" } + { url: "http://bucket-xyz.s3.us-west-2.amazonaws.com/diff-relative" } ] } ], @@ -812,9 +812,9 @@ describe("Custom inputs", () => { ...defaults, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1", + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1", "origin-response": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1", + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1", ...defaults["lambda@edge"] } }; @@ -839,7 +839,7 @@ describe("Custom inputs", () => { ...(expectedInConfig["api/*"] && expectedInConfig["api/*"]["lambda@edge"]), "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1" } }; @@ -849,7 +849,7 @@ describe("Custom inputs", () => { ...cacheBehaviour, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1", + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1", ...(cacheBehaviour && cacheBehaviour["lambda@edge"]) } }; @@ -904,9 +904,9 @@ describe("Custom inputs", () => { }, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1", + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1", "origin-response": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1" } }, "api/*": { @@ -926,7 +926,7 @@ describe("Custom inputs", () => { maxTTL: 31536000, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1" }, forward: { headers: ["Accept"] @@ -954,7 +954,7 @@ describe("Custom inputs", () => { } }, private: true, - url: "http://bucket-xyz.s3.us-east-1.amazonaws.com" + url: "http://bucket-xyz.s3.us-west-2.amazonaws.com" }, ...origins ], @@ -1018,7 +1018,7 @@ describe("Custom inputs", () => { )}`, () => { cloudFrontInput[pathName]["lambda@edge"] = { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1" }; // we want to make sure that default behaviors are combined correctly @@ -1034,9 +1034,9 @@ describe("Custom inputs", () => { defaultTTL: 0, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1", + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1", "origin-response": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1" }, maxTTL: 31536000, minTTL: 0, @@ -1074,7 +1074,7 @@ describe("Custom inputs", () => { defaultTTL: 0, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1" }, maxTTL: 31536000, minTTL: 0, @@ -1086,7 +1086,7 @@ describe("Custom inputs", () => { maxTTL: 31536000, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:my-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:my-func:v1" }, forward: { headers: ["Accept"] @@ -1114,7 +1114,7 @@ describe("Custom inputs", () => { ...cloudFrontInput }, private: true, - url: "http://bucket-xyz.s3.us-east-1.amazonaws.com" + url: "http://bucket-xyz.s3.us-west-2.amazonaws.com" } ] }; @@ -1248,7 +1248,7 @@ describe("Custom inputs", () => { await createNextComponent().default({ cloudfront: { webACLId: - "arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" + "arn:aws:wafv2:us-west-2:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a" } }); }); @@ -1272,7 +1272,7 @@ describe("Custom inputs", () => { certificate: { cloudFrontDefaultCertificate: false, acmCertificateArn: - "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012" + "arn:aws:acm:us-west-2:123456789012:certificate/12345678-1234-1234-1234-123456789012" } } }); @@ -1351,7 +1351,7 @@ describe("Custom inputs", () => { fifoQueue: true, fifoThroughputLimit: "perMessageGroupId", name: "customSQS", - region: "us-east-1", + region: "us-west-2", tags: { a: "b" }, diff --git a/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts b/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts index 0aa12114d2..ba912d47df 100644 --- a/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts +++ b/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts @@ -53,17 +53,17 @@ describe.each` }); if (expectsQueueDeployment) { mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:regeneration-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:regeneration-cachebehavior-func" }); } mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:api-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:api-cachebehavior-func" }); mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:image-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:image-cachebehavior-func" }); mockLambda.mockResolvedValueOnce({ - arn: "arn:aws:lambda:us-east-1:123456789012:function:default-cachebehavior-func" + arn: "arn:aws:lambda:us-west-2:123456789012:function:default-cachebehavior-func" }); mockLambdaPublish.mockResolvedValue({ version: "v1" @@ -75,7 +75,7 @@ describe.each` if (expectsQueueDeployment) { mockSQS.mockResolvedValue({ - arn: "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo" + arn: "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo" }); } @@ -124,7 +124,7 @@ describe.each` timeout: 10, runtime: "nodejs14.x", name: "bucket-xyz", - region: "us-east-1", + region: "us-west-2", tags: undefined, role: { service: ["lambda.amazonaws.com"], @@ -147,12 +147,12 @@ describe.each` }, { Effect: "Allow", - Resource: "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo", + Resource: "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo", Action: ["sqs:SendMessage"] }, { Effect: "Allow", - Resource: "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo", + Resource: "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo", Action: [ "sqs:ReceiveMessage", "sqs:DeleteMessage", @@ -202,7 +202,7 @@ describe.each` { Effect: "Allow", Resource: - "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo", + "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo", Action: ["sqs:SendMessage"] } ] @@ -249,7 +249,7 @@ describe.each` { Effect: "Allow", Resource: - "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo", + "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo", Action: ["sqs:SendMessage"] } ] @@ -296,7 +296,7 @@ describe.each` { Effect: "Allow", Resource: - "arn:aws:sqs:us-east-1:123456789012:MyQueue.fifo", + "arn:aws:sqs:us-west-2:123456789012:MyQueue.fifo", Action: ["sqs:SendMessage"] } ] @@ -310,7 +310,7 @@ describe.each` it("creates distribution", () => { expect(mockCloudFront).toBeCalledWith({ - bucketRegion: "us-east-1", + bucketRegion: "us-west-2", defaults: { allowedHttpMethods: [ "HEAD", @@ -331,15 +331,15 @@ describe.each` maxTTL: 31536000, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:default-cachebehavior-func:v1", + "arn:aws:lambda:us-west-2:123456789012:function:default-cachebehavior-func:v1", "origin-response": - "arn:aws:lambda:us-east-1:123456789012:function:default-cachebehavior-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:default-cachebehavior-func:v1" }, compress: true }, origins: [ { - url: "http://bucket-xyz.s3.us-east-1.amazonaws.com", + url: "http://bucket-xyz.s3.us-west-2.amazonaws.com", private: true, pathPatterns: { "_next/static/*": { @@ -364,9 +364,9 @@ describe.each` }, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:default-cachebehavior-func:v1", + "arn:aws:lambda:us-west-2:123456789012:function:default-cachebehavior-func:v1", "origin-response": - "arn:aws:lambda:us-east-1:123456789012:function:default-cachebehavior-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:default-cachebehavior-func:v1" } }, "static/*": { @@ -385,7 +385,7 @@ describe.each` maxTTL: 31536000, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:api-cachebehavior-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:api-cachebehavior-func:v1" }, allowedHttpMethods: [ "HEAD", @@ -408,7 +408,7 @@ describe.each` maxTTL: 31536000, "lambda@edge": { "origin-request": - "arn:aws:lambda:us-east-1:123456789012:function:image-cachebehavior-func:v1" + "arn:aws:lambda:us-west-2:123456789012:function:image-cachebehavior-func:v1" }, forward: { headers: ["Accept"] diff --git a/packages/serverless-components/nextjs-component/src/component.ts b/packages/serverless-components/nextjs-component/src/component.ts index 4b4afe24ac..f66c651c63 100644 --- a/packages/serverless-components/nextjs-component/src/component.ts +++ b/packages/serverless-components/nextjs-component/src/component.ts @@ -286,6 +286,8 @@ class NextjsComponent extends Component { async deploy( inputs: ServerlessComponentInputs = {} ): Promise { + // @ts-ignore + console.log(inputs.loadBalancer); // Skip deployment if user explicitly set deploy input to false. // Useful when they just want the build outputs to deploy themselves. if (inputs.deploy === "false" || inputs.deploy === false) { @@ -322,7 +324,7 @@ class NextjsComponent extends Component { ...cloudFrontOtherInputs } = inputs.cloudfront || {}; - const bucketRegion = inputs.bucketRegion || "us-east-1"; + const bucketRegion = inputs.bucketRegion || "us-west-2"; const [ defaultBuildManifest, @@ -409,6 +411,10 @@ class NextjsComponent extends Component { } const cloudFrontOrigins = [ + { + // @ts-ignore + url: inputs.loadBalancer + }, { url: bucketUrl, private: true, @@ -417,7 +423,9 @@ class NextjsComponent extends Component { ...inputOrigins ]; - cloudFrontOrigins[0].pathPatterns[ + console.log(cloudFrontOrigins[0]); + + cloudFrontOrigins[1].pathPatterns[ this.pathPattern("_next/static/*", routesManifest) ] = { minTTL: 0, @@ -430,7 +438,7 @@ class NextjsComponent extends Component { } }; - cloudFrontOrigins[0].pathPatterns[ + cloudFrontOrigins[1].pathPatterns[ this.pathPattern("static/*", routesManifest) ] = { minTTL: 0, @@ -663,7 +671,7 @@ class NextjsComponent extends Component { const apiEdgeLambdaPublishOutputs = await apiEdgeLambda.publishVersion(); - cloudFrontOrigins[0].pathPatterns[ + cloudFrontOrigins[1].pathPatterns[ this.pathPattern("api/*", routesManifest) ] = { minTTL: 0, @@ -734,7 +742,7 @@ class NextjsComponent extends Component { const imageEdgeLambdaPublishOutputs = await imageEdgeLambda.publishVersion(); - cloudFrontOrigins[0].pathPatterns[ + cloudFrontOrigins[1].pathPatterns[ this.pathPattern("_next/image*", routesManifest) ] = { minTTL: 0, @@ -799,7 +807,7 @@ class NextjsComponent extends Component { const defaultEdgeLambdaPublishOutputs = await defaultEdgeLambda.publishVersion(); - cloudFrontOrigins[0].pathPatterns[ + cloudFrontOrigins[1].pathPatterns[ this.pathPattern("_next/data/*", routesManifest) ] = { minTTL: 0, @@ -821,13 +829,212 @@ class NextjsComponent extends Component { } }; + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/business*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/resources*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/promos*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/about-us*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/certifications*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/sitemaps*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/training-and-events*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/support*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/lp*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + + cloudFrontOrigins[1].pathPatterns[ + this.pathPattern("/search*", routesManifest) + ] = { + minTTL: 0, + defaultTTL: 0, + maxTTL: 86400, + forward: { + cookies: "all", + headers: routesManifest.i18n + ? ["Accept-Language", "Authorization", "Host"] + : ["Authorization", "Host"], + queryString: true + }, + // lambda@edge key is last and therefore cannot be overridden + "lambda@edge": { + "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, + "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` + } + }; + // If we are using consolidated API pages (within default lambda), we need to ensure api/* behavior is set correctly. // Note that if there are no consolidated API pages then existing api/* is not deleted. // We do so for a couple reasons: // 1. API pages don't need origin response handler as it's not retrieving from S3 origin // 2. Override existing api/* behavior to ensure old separate API lambda isn't there if (hasConsolidatedApiPages) { - cloudFrontOrigins[0].pathPatterns[ + cloudFrontOrigins[1].pathPatterns[ this.pathPattern("api/*", routesManifest) ] = { minTTL: 0, @@ -886,15 +1093,15 @@ class NextjsComponent extends Component { ] = `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`; } - cloudFrontOrigins[0].pathPatterns[path] = { + cloudFrontOrigins[1].pathPatterns[path] = { // spread the existing value if there is one - ...cloudFrontOrigins[0].pathPatterns[path], + ...cloudFrontOrigins[1].pathPatterns[path], // spread custom config ...config, "lambda@edge": { // spread the provided value - ...(cloudFrontOrigins[0].pathPatterns[path] && - cloudFrontOrigins[0].pathPatterns[path]["lambda@edge"]), + ...(cloudFrontOrigins[1].pathPatterns[path] && + cloudFrontOrigins[1].pathPatterns[path]["lambda@edge"]), // then overrides ...edgeConfig } @@ -919,9 +1126,7 @@ class NextjsComponent extends Component { maxTTL: 31536000, ...cloudFrontDefaults, forward: { - headers: routesManifest.i18n - ? ["Accept-Language", "Authorization", "Host"] - : ["Authorization", "Host"], + headers: "all", cookies: "all", queryString: true, ...cloudFrontDefaults.forward @@ -936,16 +1141,6 @@ class NextjsComponent extends Component { "PUT", "PATCH" ], - "lambda@edge": buildOptions.disableOriginResponseHandler - ? { - ...defaultLambdaAtEdgeConfig, - "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` - } - : { - ...defaultLambdaAtEdgeConfig, - "origin-request": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}`, - "origin-response": `${defaultEdgeLambdaOutputs.arn}:${defaultEdgeLambdaPublishOutputs.version}` - }, compress: true }, origins: cloudFrontOrigins, diff --git a/scripts/comment-handler-sizes.ts b/scripts/comment-handler-sizes.ts index 62e46b5f71..bb82cd2c7e 100644 --- a/scripts/comment-handler-sizes.ts +++ b/scripts/comment-handler-sizes.ts @@ -39,7 +39,7 @@ const postCommentToPullRequest = async ( // Using locked down API proxy to post comment for both fork and non-fork PRs await fetch( - "https://l7ycsrlajd.execute-api.us-east-1.amazonaws.com/prod/post-comment", + "https://l7ycsrlajd.execute-api.us-west-2.amazonaws.com/prod/post-comment", { method: "POST", body: JSON.stringify({ diff --git a/yarn.lock b/yarn.lock index d572357cbc..b9ddaedf55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -27,6 +27,553 @@ __metadata: languageName: node linkType: hard +"@aws-cdk/assets@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/assets@npm:1.156.0" + dependencies: + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 1be868efa12d6fa9d001ac2187eba77143dddd95124120854afdae088bfdc022297a0e641afb6669ce92a5e1bc0a6fdeaf329e284f03a6d1bdecec2dac7e2784 + languageName: node + linkType: hard + +"@aws-cdk/aws-acmpca@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-acmpca@npm:1.156.0" + dependencies: + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: ac862f6cb60b81d8e2df7f5e686a19813e41cfbb79ebf283246e9ca9e69f797ad57b1ff4f6332d7693f2262229c8e7fdb6769d287629deb118b036945d80fbd3 + languageName: node + linkType: hard + +"@aws-cdk/aws-applicationautoscaling@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-applicationautoscaling@npm:1.156.0" + dependencies: + "@aws-cdk/aws-autoscaling-common": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-autoscaling-common": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: f26886fcb1b1b0e66c12dee7b7fe2f90fc7b9428ac189bffd5745318c56f1a89046cd4ff51f4e318f835b7076ead3db7e374abbb8cfa4bdac31d78430225b601 + languageName: node + linkType: hard + +"@aws-cdk/aws-autoscaling-common@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-autoscaling-common@npm:1.156.0" + dependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 777e4d86300c4d9dbc6f80d8c17693a6c4fc1c7abe64a338e830adf1886617af7e838ce187499410e5999690d665c4f9afe6154ccad366cdcc8c9996a687025d + languageName: node + linkType: hard + +"@aws-cdk/aws-certificatemanager@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-certificatemanager@npm:1.156.0" + dependencies: + "@aws-cdk/aws-acmpca": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-route53": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-acmpca": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-route53": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 8c028e09e9015a5cd30e54720c5d32eb194dc9f58774dd090df58ae14da78c1330471195a4b9e4011843132372b16cb9813658ec1fdf418e19a118332dbae8be + languageName: node + linkType: hard + +"@aws-cdk/aws-cloudformation@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-cloudformation@npm:1.156.0" + dependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/aws-sns": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/aws-sns": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 7ddb736b3794b9a68f386f95afee047f0649834936a312a1db2930e482ca181698f874fc1f32c93b078edbb4fe2cbb231df166b0c0425f668a4ec9087d19f497 + languageName: node + linkType: hard + +"@aws-cdk/aws-cloudwatch@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-cloudwatch@npm:1.156.0" + dependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 7dd30d77145ecb4df06755afb571baf6e586162581f072d9c941af15234c18a29f2e6c7660ff6005dbbba801b85d5500bf6a236f3a6286419232476edb51932c + languageName: node + linkType: hard + +"@aws-cdk/aws-codeguruprofiler@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-codeguruprofiler@npm:1.156.0" + dependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 9139076da091448d04b8a36988676b0e2b8c6993d481e242453cb754ccc6e0ecdcd3930fa95625cef28b039820572331700ce10278a9ad0611ae537b6290aa7b + languageName: node + linkType: hard + +"@aws-cdk/aws-codestarnotifications@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-codestarnotifications@npm:1.156.0" + dependencies: + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: ca46f11d0662dd029de3077e4852a40d1c050c11eadbd0f8be7fdc3ddc56ef12c2a185634706815ba74d6cdceaf076f7734b9a4abcdf42d3d1465a0bf29de92b + languageName: node + linkType: hard + +"@aws-cdk/aws-ec2@npm:1.156.0, @aws-cdk/aws-ec2@npm:^1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-ec2@npm:1.156.0" + dependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/aws-s3-assets": 1.156.0 + "@aws-cdk/aws-ssm": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/aws-s3-assets": 1.156.0 + "@aws-cdk/aws-ssm": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + checksum: 35f520381980b0c628e59ea70fe7705c62b9247cb1d47a78518f91caac82c1e4ef7e98bfeb330a7f1d2b2df58891f4a72c271cb804080cd948b0ff633a0fc97d + languageName: node + linkType: hard + +"@aws-cdk/aws-ecr-assets@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-ecr-assets@npm:1.156.0" + dependencies: + "@aws-cdk/assets": 1.156.0 + "@aws-cdk/aws-ecr": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/assets": 1.156.0 + "@aws-cdk/aws-ecr": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 17106b82a004bd17ffa9df31e8c78e3e3e984c44e47b1d5ffbeebef3159f837fbf40ba2278aee4dafdb4fb80a7fdd064721ed2b3076ebe774c592e671dd88256 + languageName: node + linkType: hard + +"@aws-cdk/aws-ecr@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-ecr@npm:1.156.0" + dependencies: + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 892210ee9718fbfac5a148baf542aacbe6797caee43ad591c41fa1c02775773140bef906d83caff2329ab2c092e53f8f9a5cf5a82d1e7d68be6a09d4fd4a0a87 + languageName: node + linkType: hard + +"@aws-cdk/aws-efs@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-efs@npm:1.156.0" + dependencies: + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 31c1837f9f8e5ca492be3c5dd6f4657400e3e03343cf616b382a773c15792a03b64e04c9c097bc5bb765957e23c495b1020651dc3a6c25023e98be482a844c46 + languageName: node + linkType: hard + +"@aws-cdk/aws-elasticloadbalancingv2@npm:^1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-elasticloadbalancingv2@npm:1.156.0" + dependencies: + "@aws-cdk/aws-certificatemanager": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-route53": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-certificatemanager": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-route53": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + checksum: af29756424aa52a7ca7aa82989f81c13ee950b76f8405a134bdf2b1412f628c5b9af926e88f7612e3ce076747b2ac20b7baf725c64fe65a2354d5cf66958f210 + languageName: node + linkType: hard + +"@aws-cdk/aws-events@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-events@npm:1.156.0" + dependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 9dbc239476bbfc7ccd8f710010d21e42685c0acfc1d0f4a735341bb6e4f204c07afc3c353732cff3b00ac4f9da6b49fb35896f358c588de38e61667c0943e39f + languageName: node + linkType: hard + +"@aws-cdk/aws-iam@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-iam@npm:1.156.0" + dependencies: + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/core": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + checksum: 79d6df9f5655687a01209476bcf3f895223691e26603b50f70c55b1df9bd6a2c10864918305970b40c206a551a48f64fe5f4fbd310a5f58e0521538c40a8d2f0 + languageName: node + linkType: hard + +"@aws-cdk/aws-kms@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-kms@npm:1.156.0" + dependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 08976b8f85472db49bcb5a7205f00d693853e9ec23aca622b5d45b5aa3a847f795fe73bfed9719b0000f9a9720fb455c3e849d45f65a701228360914a90809e9 + languageName: node + linkType: hard + +"@aws-cdk/aws-lambda@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-lambda@npm:1.156.0" + dependencies: + "@aws-cdk/aws-applicationautoscaling": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-codeguruprofiler": 1.156.0 + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-ecr": 1.156.0 + "@aws-cdk/aws-ecr-assets": 1.156.0 + "@aws-cdk/aws-efs": 1.156.0 + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/aws-s3-assets": 1.156.0 + "@aws-cdk/aws-signer": 1.156.0 + "@aws-cdk/aws-sns": 1.156.0 + "@aws-cdk/aws-sqs": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-applicationautoscaling": 1.156.0 + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-codeguruprofiler": 1.156.0 + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-ecr": 1.156.0 + "@aws-cdk/aws-ecr-assets": 1.156.0 + "@aws-cdk/aws-efs": 1.156.0 + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/aws-s3-assets": 1.156.0 + "@aws-cdk/aws-signer": 1.156.0 + "@aws-cdk/aws-sns": 1.156.0 + "@aws-cdk/aws-sqs": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + checksum: ca3f2d6af59fc2d3a99e496a396ba109ca446feaaaa0a76d0a7d0af35bc179749db587f0e7d4eda3bf481e4e2124cd3138a3139f643900d62ee01788bb7292a9 + languageName: node + linkType: hard + +"@aws-cdk/aws-logs@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-logs@npm:1.156.0" + dependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-s3-assets": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-s3-assets": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 3934181c0c95850de1d2e1e6a72e1d9a66a49022464317b386762bcdf02abeea428db38c63b633b47a2ed84d0f3e704b77db1db0ba4b9d7d0f371d66f8b7f405 + languageName: node + linkType: hard + +"@aws-cdk/aws-route53@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-route53@npm:1.156.0" + dependencies: + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/custom-resources": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/custom-resources": 1.156.0 + constructs: ^3.3.69 + checksum: c29f2a34d44bf423bb867d9c22a28115604805e33fc53dfa39d886ea8ac25e9a2964f9eda163ffc4dac4048ef9bc43f3229aa384a15d9718f56ade391567d48f + languageName: node + linkType: hard + +"@aws-cdk/aws-s3-assets@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-s3-assets@npm:1.156.0" + dependencies: + "@aws-cdk/assets": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/assets": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-s3": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 984dc5dba88566390dd33b9c1dd5123698585ee284f0d7fdb581524ffa8e8c02cf36b9b40093105350239d11893a96e040bf36971d76602a34cd8bc2a9636982 + languageName: node + linkType: hard + +"@aws-cdk/aws-s3@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-s3@npm:1.156.0" + dependencies: + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/core": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + constructs: ^3.3.69 + checksum: 479c0750e62a9ad43725d2d1e728c69468039c1ff75ea43619051b0bcf19f51c018bfb0c4f1d2dcbdc5ed24c5879dd722b84f394135c262342f378f27a55ad39 + languageName: node + linkType: hard + +"@aws-cdk/aws-signer@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-signer@npm:1.156.0" + dependencies: + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 80f942b9f2f2f455e03793e1d8cfcf0293b9fa6689f7c85e97393cb7c9b199f4b61ea3bf7c479ae06352fe18f5be62f9801a45f907dfdc8138e71faf7c4e7d41 + languageName: node + linkType: hard + +"@aws-cdk/aws-sns@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-sns@npm:1.156.0" + dependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-codestarnotifications": 1.156.0 + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-sqs": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-codestarnotifications": 1.156.0 + "@aws-cdk/aws-events": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/aws-sqs": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 79740b7ed18fc7fe6abd0b98cab44594c4554646f491e905d64cd4b9ddcd99c240c17a475061337b23d4d3fbe7ebce2bf7d29b6bf0c5af0ba95fac272eede944 + languageName: node + linkType: hard + +"@aws-cdk/aws-sqs@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-sqs@npm:1.156.0" + dependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-cloudwatch": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 7c8852e24247954c5316e8b159451f2676791e1e3e94096b7b96da31535815fed943f05810c6495258ad3c399c5112756da752fb9f7d68ce9ef87d8a4ebb187d + languageName: node + linkType: hard + +"@aws-cdk/aws-ssm@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/aws-ssm@npm:1.156.0" + dependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-kms": 1.156.0 + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 7b9c03bf5432fc2d5c22ff1124a9c36a23d6bf7373ef7203fe60c0ed2054eefbd48f60242dcf9c0bde92e95205380cf748c6d0977a5fc54dd8f73624e2d9824f + languageName: node + linkType: hard + "@aws-cdk/cfnspec@npm:2.13.0": version: 2.13.0 resolution: "@aws-cdk/cfnspec@npm:2.13.0" @@ -37,6 +584,16 @@ __metadata: languageName: node linkType: hard +"@aws-cdk/cloud-assembly-schema@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/cloud-assembly-schema@npm:1.156.0" + dependencies: + jsonschema: ^1.4.0 + semver: ^7.3.7 + checksum: 5b58b02857fd893fa94d2e30fd19558a00532d353e8dcd38cd49c9c0cce4f519d5ee8f308a047f1224359e9537ea6f70a4d37626b63f2d73854d0e54f2cc9a41 + languageName: node + linkType: hard + "@aws-cdk/cloud-assembly-schema@npm:2.13.0": version: 2.13.0 resolution: "@aws-cdk/cloud-assembly-schema@npm:2.13.0" @@ -62,6 +619,64 @@ __metadata: languageName: node linkType: hard +"@aws-cdk/core@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/core@npm:1.156.0" + dependencies: + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + "@balena/dockerignore": ^1.0.2 + constructs: ^3.3.69 + fs-extra: ^9.1.0 + ignore: ^5.2.0 + minimatch: ^3.1.2 + peerDependencies: + "@aws-cdk/cloud-assembly-schema": 1.156.0 + "@aws-cdk/cx-api": 1.156.0 + "@aws-cdk/region-info": 1.156.0 + constructs: ^3.3.69 + checksum: 5808b0949ad406176ddcfc633b9e4bd1510732ce9c2b6c741f0b502a01c2aa4067bf7ac40a580027ddf8dbe9be7ba9178b50991fd71a841a15009b1f9d7422c8 + languageName: node + linkType: hard + +"@aws-cdk/custom-resources@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/custom-resources@npm:1.156.0" + dependencies: + "@aws-cdk/aws-cloudformation": 1.156.0 + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/aws-sns": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + peerDependencies: + "@aws-cdk/aws-cloudformation": 1.156.0 + "@aws-cdk/aws-ec2": 1.156.0 + "@aws-cdk/aws-iam": 1.156.0 + "@aws-cdk/aws-lambda": 1.156.0 + "@aws-cdk/aws-logs": 1.156.0 + "@aws-cdk/aws-sns": 1.156.0 + "@aws-cdk/core": 1.156.0 + constructs: ^3.3.69 + checksum: 6bae8feedeb7df6301f17f677a7ae38067b9d3663ad85133e7cfc4f39f28988c29c96b01b54a38a82d4676f181900bf2b55b9c5271ddd0a104b1084644edbadf + languageName: node + linkType: hard + +"@aws-cdk/cx-api@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/cx-api@npm:1.156.0" + dependencies: + "@aws-cdk/cloud-assembly-schema": 1.156.0 + semver: ^7.3.7 + peerDependencies: + "@aws-cdk/cloud-assembly-schema": 1.156.0 + checksum: 6d2b60bc8263de606c2ce658103388ece5c2ac06d8ba87ede8cb3e221493b0069101e0bd66d41c8d8c472d640995a54f14285575d4c3d3f24f56faa5aea7f822 + languageName: node + linkType: hard + "@aws-cdk/cx-api@npm:2.13.0": version: 2.13.0 resolution: "@aws-cdk/cx-api@npm:2.13.0" @@ -74,6 +689,13 @@ __metadata: languageName: node linkType: hard +"@aws-cdk/region-info@npm:1.156.0": + version: 1.156.0 + resolution: "@aws-cdk/region-info@npm:1.156.0" + checksum: a2490a7cf7d7b43444a2e5284833afbe6753d08e4a8758a31cafddf52247dee4b5522db14779d83e077f737b853d803f815132845f630f7d4ab32d7394a3da50 + languageName: node + linkType: hard + "@aws-cdk/region-info@npm:2.13.0": version: 2.13.0 resolution: "@aws-cdk/region-info@npm:2.13.0" @@ -5963,6 +6585,8 @@ __metadata: resolution: "@sls-next/cdk-construct@workspace:packages/serverless-components/nextjs-cdk-construct" dependencies: "@aws-cdk/assert": ^2.13.0 + "@aws-cdk/aws-ec2": ^1.156.0 + "@aws-cdk/aws-elasticloadbalancingv2": ^1.156.0 "@sls-next/core": "link:../../libs/core" "@sls-next/lambda-at-edge": "link:../../libs/lambda-at-edge" "@types/fs-extra": 9.0.13 @@ -9283,6 +9907,13 @@ __metadata: languageName: node linkType: hard +"constructs@npm:^3.3.69": + version: 3.4.7 + resolution: "constructs@npm:3.4.7" + checksum: 3b6b77d729b0beaeb400aaba2b2335609e8541b59b96b1679bdc0a6ed3973fe8be66526213e3e2402a76552593ce4aca8978c08b236dac50c1128939fb7dee0c + languageName: node + linkType: hard + "conventional-changelog-angular@npm:^5.0.12": version: 5.0.13 resolution: "conventional-changelog-angular@npm:5.0.13" @@ -15527,6 +16158,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + "minimist-options@npm:4.1.0": version: 4.1.0 resolution: "minimist-options@npm:4.1.0" @@ -18344,6 +18984,17 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.3.7": + version: 7.3.7 + resolution: "semver@npm:7.3.7" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232 + languageName: node + linkType: hard + "send@npm:0.17.2": version: 0.17.2 resolution: "send@npm:0.17.2"