微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 websocket api 网关 ID 公开为云形成输出变量

如何解决如何将 websocket api 网关 ID 公开为云形成输出变量

service: ${file(config/${self:provider.stage}.json):service.name}-ws
custom:
  logRetentionInDays: ${file(config/${self:provider.stage}.json):log.retentionDays}
  service:
    awsAccId: ${file(config/${self:provider.stage}.json):aws.accountId}
    queue: ${file(config/${self:provider.stage}.json):service.serviceQueue}
    topic: ${file(config/${self:provider.stage}.json):service.servicetopic}
    eventSource: ${file(config/${self:provider.stage}.json):service.allowedEventSources}
    eventType: ${file(config/${self:provider.stage}.json):service.allowedEventTypes}
    certId: ${file(config/${self:provider.stage}.json):aws.certId}
    socketCertId: ${file(config/${self:provider.stage}.json):aws.socketCertId}
  customDomain:
    websocket:
      domainName: ${file(config/${self:provider.stage}.json):aws.socketDomainName}
      stage: ${opt:stage}
      hostedZoneId: ${file(config/${self:provider.stage}.json):aws.hostedZoneId}
      createRoute53Record: true
      endpointType: 'regional'
      securityPolicy: tls_1_2
      certificateArn: 'arn:aws:acm:us-west-2:${self:custom.service.awsAccId}:certificate/${self:custom.service.socketCertId}'
      enabled: true
  #  documentation: ${file(documentation.yml)}
  webpack:
    webpackConfig: ./webpack.config.js
    packager: "yarn"
    packagerOptions:
      scripts:
        - yarn autoclean --init
        - yarn autoclean --force
    includeModules:
      forceExclude:
        - aws-sdk
      forceInclude:
        - config
# Add the serverless-webpack plugin
plugins:
  - serverless-webpack
  - serverless-offline
#  - serverless-domain-manager
  - serverless-plugin-tracing
  #  - serverless-aws-documentation
  - serverless-plugin-log-retention
package:
  excludeDevDependencies: true
  individually: true
provider:
  name: aws
  runtime: nodejs12.x
  timeout: 900
  stage: ${opt:stage}
  endpointType: EDGE
  region: ${file(config/${self:provider.stage}.json):aws.region}
  tracing: true
  environment:
    STAGE: ${opt:stage}
    AWS_NODEJS_CONNECTION_REUSE_ENABLED: 1
    NODE_ENV: ${opt:stage}
  apiGateway:
    minimumCompressionSize: 1024 # Enable gzip compression for responses > 1 KB
    tracing: true
    websocketsApiName: draas-agents-api
    websocketsApiRouteSelectionExpression: $request.body.action # custom routes are selected by the value of the action property in the body
 

functions:
  connect-handler:
    handler: src/api/websocket.webSocketConnect
    events:
      - websocket:
          route: $connect
  disconnect-handler:
    handler: src/api/websocket.webSocketdisconnect
    events:
      - websocket:
          route: $disconnect
  message-handler:
    handler: src/api/websocket.messageHandler
    events:
      - websocket:
          route: $default

这是我的无服务器文件。 部署此文件后,我可以看到在资源中创建了 WebsocketsApi。

我想将 WebSocket API 网关 Id 导出为云形成中的输出变量。 就像我们为 RestApis 所做的一样 [ApiGatewayRestApi] 我想使用该 ID 为其创建一个授权方,该授权方位于不同的服务中。

请帮忙!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。