From 1dd2ec3215bffc85ecfb2d9d9b311759315d706c Mon Sep 17 00:00:00 2001 From: BillConley01 Date: Sat, 30 Apr 2022 14:29:04 -0400 Subject: [PATCH] default values for instances websockets properties are not defined. default values for instances websockets properties are not defined. --- docs/deprecations.md | 16 ++++++++++++++++ docs/providers/aws/guide/serverless.yml.md | 14 +++++++------- lib/plugins/aws/lib/naming.js | 5 ++++- .../package/compile/events/websockets/lib/api.js | 2 +- .../compile/events/websockets/lib/stage.js | 2 +- 5 files changed, 29 insertions(+), 10 deletions(-) diff --git a/docs/deprecations.md b/docs/deprecations.md index 086a97d7c5f..3c3c10e7087 100644 --- a/docs/deprecations.md +++ b/docs/deprecations.md @@ -36,6 +36,22 @@ Note: - The `serverless.yml` setting is ineffective for deprecations reported before the configuration is read. - `SLS_DEPRECATION_DISABLE` and `disabledDeprecations` remain respected, and no errors will be thrown for mentioned deprecation codes. +
 
+ +## Grouping websockets settings under `provider.websockets` + +Deprecation code: `PROVIDER_WEBSOCKETS_SETTINGS_v3` + +Websockets-related settings of _provider_ including `websocketsApiName`, `websocketsApiRouteSelectionExpression` and `websocketsDescription` are also now supported at `websockets` property. Refer to the [Websocket Guide](/docs/providers/aws/events/websocket.md). + +- `provider.websocketsApiName` -> `provider.iam.role` +- `provider.websocketsApiRouteSelectionExpression` -> `provider.websockets.apiRouteSelectionExpression` +- `provider.websocketsDescription` -> `provider.websockets.description` + +In addition `iam.role.permissionBoundary` can also be set at `iam.role.permissionsBoundary` (which matches CloudFormation property name). + +Starting with v4.0.0 old versions of settings will no longer be supported +
 
## Property `variablesResolutionMode` diff --git a/docs/providers/aws/guide/serverless.yml.md b/docs/providers/aws/guide/serverless.yml.md index b40a0028956..ca658e79895 100644 --- a/docs/providers/aws/guide/serverless.yml.md +++ b/docs/providers/aws/guide/serverless.yml.md @@ -237,13 +237,6 @@ provider: apiName: custom-api-name # Endpoint type for API Gateway REST API: edge or regional (default: edge) endpointType: regional - # Use a custom name for the websockets API - websockets: - apiName: custom-websockets-api-name - # custom route selection expression - apiRouteSelectionExpression: $request.body.route - # Use a custom description for the websockets API - description: Custom Serverless Websockets # Optional API Gateway REST API global config apiGateway: # Attach to an externally created REST API via its ID: @@ -311,6 +304,13 @@ provider: name: GlobalModel # Optional: Description of the API Gateway model description: 'A global model that can be referenced in functions' + # Use a custom name for the websockets API + websockets: + apiName: custom-websockets-api-name + # custom route selection expression + apiRouteSelectionExpression: $request.body.route + # Use a custom description for the websockets API + description: Custom Serverless Websockets ``` ### ALB diff --git a/lib/plugins/aws/lib/naming.js b/lib/plugins/aws/lib/naming.js index 24711b5409d..feb6696a615 100644 --- a/lib/plugins/aws/lib/naming.js +++ b/lib/plugins/aws/lib/naming.js @@ -208,7 +208,10 @@ module.exports = { // Websockets API getWebsocketsApiName() { if (_.get(this.provider.serverless.service.provider.websockets)) { - return `${this.provider.serverless.service.provider.websockets.apiName}`; + return ( + `${this.provider.serverless.service.provider.websockets.apiName}` || + `${this.provider.getStage()}-${this.provider.serverless.service.service}-websockets` + ); } if ( this.provider.serverless.service.provider.websocketsApiName && diff --git a/lib/plugins/aws/package/compile/events/websockets/lib/api.js b/lib/plugins/aws/package/compile/events/websockets/lib/api.js index 4e34697d86b..dd54f262f88 100644 --- a/lib/plugins/aws/package/compile/events/websockets/lib/api.js +++ b/lib/plugins/aws/package/compile/events/websockets/lib/api.js @@ -29,7 +29,7 @@ module.exports = { Name: this.provider.naming.getWebsocketsApiName(), RouteSelectionExpression, Description: this.serverless.service.provider.websockets - ? this.serverless.service.provider.websockets.description + ? this.serverless.service.provider.websockets.description || 'Serverless Websockets' : this.serverless.service.provider.websocketsDescription || 'Serverless Websockets', ProtocolType: 'WEBSOCKET', }, diff --git a/lib/plugins/aws/package/compile/events/websockets/lib/stage.js b/lib/plugins/aws/package/compile/events/websockets/lib/stage.js index 43e4af05dad..f83e03fc84b 100644 --- a/lib/plugins/aws/package/compile/events/websockets/lib/stage.js +++ b/lib/plugins/aws/package/compile/events/websockets/lib/stage.js @@ -31,7 +31,7 @@ module.exports = { // DeploymentId is generated at deployment.js file StageName: this.provider.getStage(), Description: this.serverless.service.provider.websockets - ? this.serverless.service.provider.websockets.description + ? this.serverless.service.provider.websockets.description || 'Serverless Websockets' : this.serverless.service.provider.websocketsDescription || 'Serverless Websockets', }, };