From adafb0ef2f46e64117a655106d3db85f24dd524c Mon Sep 17 00:00:00 2001 From: Daniel Phang Date: Mon, 15 Nov 2021 01:11:23 -0800 Subject: [PATCH] fix(aws-cloudfront, nextjs-component): specify s3 client's region in aws-cloudfront the same as the bucket region --- .../serverless-components/aws-cloudfront/src/component.ts | 5 +++-- .../nextjs-component/__tests__/deploy.test.ts | 1 + .../serverless-components/nextjs-component/src/component.ts | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/serverless-components/aws-cloudfront/src/component.ts b/packages/serverless-components/aws-cloudfront/src/component.ts index 2629ceb65d..12d3a45011 100644 --- a/packages/serverless-components/aws-cloudfront/src/component.ts +++ b/packages/serverless-components/aws-cloudfront/src/component.ts @@ -23,7 +23,8 @@ class CloudFront extends Component { async default(inputs: any = {}) { this.context.status("Deploying"); - inputs.region = inputs.region || "us-east-1"; + 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.enabled = inputs.enabled !== false; inputs.comment = inputs.comment === null || inputs.comment === undefined @@ -57,7 +58,7 @@ class CloudFront extends Component { const s3 = new AWS.S3({ credentials: this.context.credentials.aws, - region: inputs.region + region: inputs.bucketRegion }); this.state.id = inputs.distributionId || this.state.id; diff --git a/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts b/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts index 442a80cc65..0aa12114d2 100644 --- a/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts +++ b/packages/serverless-components/nextjs-component/__tests__/deploy.test.ts @@ -310,6 +310,7 @@ describe.each` it("creates distribution", () => { expect(mockCloudFront).toBeCalledWith({ + bucketRegion: "us-east-1", defaults: { allowedHttpMethods: [ "HEAD", diff --git a/packages/serverless-components/nextjs-component/src/component.ts b/packages/serverless-components/nextjs-component/src/component.ts index 80726589de..4b4afe24ac 100644 --- a/packages/serverless-components/nextjs-component/src/component.ts +++ b/packages/serverless-components/nextjs-component/src/component.ts @@ -911,6 +911,7 @@ class NextjsComponent extends Component { delete defaultLambdaAtEdgeConfig["origin-response"]; const cloudFrontOutputs = await cloudFront({ + bucketRegion: bucketRegion, distributionId: cloudFrontDistributionId, defaults: { minTTL: 0,