在无服务器框架中找不到导出名称 XYZ

问题描述

functions:
  wsConnect:
    handler: src/handlers/wsConnect.handler
    name: ${self:provider.stage}-wsConnect
    environment:
      WS_SERVICE: ${self:provider.stage}-wsService
    events:
      - websocket:
          route: $connect
  wsdisconnect:
    handler: src/handlers/wsdisconnect.handler
    name: ${self:provider.stage}-wsdisconnect
    environment:
      WS_SERVICE: ${self:provider.stage}-wsService
    events:
      - websocket:
          route: $disconnect
  wsDefault:
    handler: src/handlers/wsDefault.handler
    name: ${self:provider.stage}-wsDefault
    events:
      - websocket:
          route: $default
resources:
    Outputs:
        ExportedWebSocketpi:
          Value: !Ref WebsocketsApi # Logical ID
          Export:
            Name: webSocketAPI
        ExportedRestApi:
          Value: !Ref ApiGatewayRestApi # Logical ID
          Export:
            Name: rest-wsAPI
custom:
  importwebSocketAPI:
    Fn::ImportValue: webSocketAPI

我已经创建了这个 WebSocket 并尝试第一次部署它,它显示 找不到导出名称 webSocketAPI自定义标签输出导出 API 之前正在执行。我该如何使用 DependsOn 或有其他方法可以做到这一点?

解决方法

您缺少输出的必填字段 - value

您可以在此处找到如何设置 Outputs in serverless framework

另一个例子:

resources:
    Outputs:
        DBUserName:
            Value: ${self:custom.dbCredentials.DB_USERNAME}
        DBPassword:
            Value: ${self:custom.dbCredentials.DB_PSW}

        RDSClusterID:
            Description: "RDS Cluster"
            Value: { Ref: RDSCluster }

        CognitoUserPoolId:
            Value: ${self:custom.userPool}