Skip to content

Commit

Permalink
feat: add back support for proxy
Browse files Browse the repository at this point in the history
  • Loading branch information
ertanden committed Nov 10, 2023
1 parent 1dcb082 commit 931e1de
Show file tree
Hide file tree
Showing 10 changed files with 353 additions and 18 deletions.
336 changes: 326 additions & 10 deletions package-lock.json

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@
"@aws-sdk/credential-providers": "^3.370.0",
"@aws-sdk/node-config-provider": "^3.370.0",
"@aws-sdk/smithy-client": "^3.370.0",
"@aws-sdk/util-retry": "^3.370.0"
"@aws-sdk/util-retry": "^3.370.0",
"proxy-agent": "^6.3.1"
},
"peerDependencies": {
"serverless": "^2.60 || ^3.0.0"
Expand Down
3 changes: 2 additions & 1 deletion src/aws/acm-wrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ class ACMWrapper {
this.acm = new ACMClient({
credentials,
region: isEdge ? Globals.defaultRegion : Globals.getRegion(),
retryStrategy: Globals.getRetryStrategy()
retryStrategy: Globals.getRetryStrategy(),
requestHandler: Globals.getRequestHandler(),
});
}

Expand Down
3 changes: 2 additions & 1 deletion src/aws/api-gateway-v1-wrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ class APIGatewayV1Wrapper extends APIGatewayBase {
this.apiGateway = new APIGatewayClient({
credentials,
region: Globals.getRegion(),
retryStrategy: Globals.getRetryStrategy()
retryStrategy: Globals.getRetryStrategy(),
requestHandler: Globals.getRequestHandler(),
});
}

Expand Down
3 changes: 2 additions & 1 deletion src/aws/api-gateway-v2-wrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ class APIGatewayV2Wrapper extends APIGatewayBase {
this.apiGateway = new ApiGatewayV2Client({
credentials,
region: Globals.getRegion(),
retryStrategy: Globals.getRetryStrategy()
retryStrategy: Globals.getRetryStrategy(),
requestHandler: Globals.getRequestHandler(),
});
}

Expand Down
3 changes: 2 additions & 1 deletion src/aws/cloud-formation-wrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ class CloudFormationWrapper {
this.cloudFormation = new CloudFormationClient({
credentials,
region: Globals.getRegion(),
retryStrategy: Globals.getRetryStrategy()
retryStrategy: Globals.getRetryStrategy(),
requestHandler: Globals.getRequestHandler(),
});
}

Expand Down
6 changes: 4 additions & 2 deletions src/aws/route53-wrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@ class Route53Wrapper {
this.route53 = new Route53Client({
credentials,
region: region || Globals.getRegion(),
retryStrategy: Globals.getRetryStrategy()
retryStrategy: Globals.getRetryStrategy(),
requestHandler: Globals.getRequestHandler(),
});
} else {
this.route53 = new Route53Client({
region: Globals.getRegion(),
retryStrategy: Globals.getRetryStrategy()
retryStrategy: Globals.getRetryStrategy(),
requestHandler: Globals.getRequestHandler(),
});
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/aws/s3-wrapper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ class S3Wrapper {
constructor(credentials?: any) {
this.s3 = new S3Client({
credentials,
region: Globals.getRegion()
region: Globals.getRegion(),
requestHandler: Globals.getRequestHandler(),
});
}

Expand Down
10 changes: 10 additions & 0 deletions src/globals.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import {ServerlessInstance, ServerlessOptions, ServerlessUtils} from "./types";
import {fromIni} from "@aws-sdk/credential-providers";
import {ConfiguredRetryStrategy} from "@aws-sdk/util-retry";
import { NodeHttpHandler } from "@smithy/node-http-handler";
import { ProxyAgent } from "proxy-agent";

export default class Globals {

Expand Down Expand Up @@ -83,4 +85,12 @@ export default class Globals {
(attempt: number) => backoff + attempt * delay // backoff function.
)
}

public static getRequestHandler() {
const proxyAgent = new ProxyAgent();
return new NodeHttpHandler({
httpAgent: proxyAgent,
httpsAgent: proxyAgent
});
}
}
1 change: 1 addition & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"moduleResolution": "node",
"rootDir": ".",
"target": "es6",
"esModuleInterop": true,
"sourceMap": false,
"outDir": "dist",
"declaration": true,
Expand Down

0 comments on commit 931e1de

Please sign in to comment.