API网关websocket IAM授权程序

API网关websocket IAM授权程序,websocket,aws-api-gateway,serverless,Websocket,Aws Api Gateway,Serverless,我已将我的$connectwebsocket路由的身份验证配置为AWS_IAM,但是,我仍然可以建立连接,而无需使用凭据对url进行签名。我预计,如果url没有使用有效凭据签名,那么握手应该会失败,但似乎IAM授权人没有被调用。我尝试使用无效凭据对url进行签名,但它只能成功连接 还有其他需要的配置吗?经过长时间的尝试,我终于找到了问题的答案,让IAM授权程序为我的websocket api工作。我试图手动创建一个自定义lambda授权程序,并将其应用于$connect路由,并部署了api。正如

我已将我的
$connect
websocket路由的身份验证配置为
AWS_IAM
,但是,我仍然可以建立连接,而无需使用凭据对url进行签名。我预计,如果url没有使用有效凭据签名,那么握手应该会失败,但似乎IAM授权人没有被调用。我尝试使用无效凭据对url进行签名,但它只能成功连接


还有其他需要的配置吗?

经过长时间的尝试,我终于找到了问题的答案,让IAM授权程序为我的websocket api工作。我试图手动创建一个自定义lambda授权程序,并将其应用于
$connect
路由,并部署了api。正如预期的那样,定制授权人工作了。我把它改回了
AWS_IAM
authorizer,再次在控制台中手动部署了api,它终于工作了。我想原因是因为我必须通过
AWS::ApiGatewayV2::route
这样的资源配置
$connect
路由的授权器:

// serverless@2.16.0
resources: {
  Resources: {
    SconnectWebsocketsRoute: {
      Type: 'AWS::ApiGatewayV2::Route',
      Properties: {
        AuthorizationType: 'AWS_IAM'
      }
    }
  }
}
每次我执行
serverless deploy-s stage--force
,它都不会将此视为配置中的新更改,因此它会跳过在Cloudformation中的更新。我不是百分之百确定这一点,所以任何其他想法都是受欢迎的