Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services apigateway websocket sqs集成_Amazon Web Services_Websocket_Aws Api Gateway_Amazon Sqs - Fatal编程技术网

Amazon web services apigateway websocket sqs集成

Amazon web services apigateway websocket sqs集成,amazon-web-services,websocket,aws-api-gateway,amazon-sqs,Amazon Web Services,Websocket,Aws Api Gateway,Amazon Sqs,我正在尝试将API网关WebSocket路由与SQS集成 我已使用以下属性配置了SQS集成 AWS地区:ap-东南-1 AWS服务:SQS HTTP方法:POST 路径覆盖:11111111 0111/我的队列 将请求模板配置为 “Action=SendMessage&MessageBody=$util.urlEncode($input.body)## set($context.requestOverride.header.Content Type=“application/x-www-form

我正在尝试将API网关WebSocket路由与SQS集成

我已使用以下属性配置了SQS集成

AWS地区:ap-东南-1 AWS服务:SQS HTTP方法:POST 路径覆盖:11111111 0111/我的队列

将请求模板配置为

“Action=SendMessage&MessageBody=$util.urlEncode($input.body)##

set($context.requestOverride.header.Content Type=“application/x-www-form-urlencoded”)#” 当我尝试将数据发送到SQS时,它失败,出现以下错误

错误:

(VK1mEHZSyQ0FlZg=)转换后的端点请求正文:Action=SendMessage&MessageBody=foobar (VK1mEHZSyQ0FlZg=)向发送请求 (VK1mEHZSyQ0FlZg=)收到响应。集成延迟:16毫秒
(VK1mEHZSyQ0FlZg=)转换前的端点响应主体:几乎晚了一年,无法确定要授权的服务/操作名称,但我找到了一种方法。您不能从控制台本身执行此操作,但可以通过CLI使其工作

中介绍了大多数步骤,但将其设置为WS-api而不是REST api

您会注意到,无法指定HTTP头,也无法指定映射模板。由于某些原因,这在控制台上不可用。您必须改为通过CLI执行此操作。将以下内容另存为JSON文件

{
  "PassthroughBehavior": "NEVER",
  "RequestParameters": {
    "integration.request.header.Content-Type": "'application/x-www-form-urlencoded'"
  },
  "RequestTemplates": {
    "application/json": "Action=SendMessage&MessageBody=$util.urlEncode($input.body)"
  }
}
并更新集成,如下所示:

aws apigatewayv2 update-integration \ 
--api-id API_ID \
--integration-id INTEGRATION_ID \
--cli-input-json file://update.json
您将在API概述的控制台上看到API id,但必须通过CLI找到集成id,如下所示:

aws apigatewayv2 get-integrations --api-id API_ID
这将导致正文本身以明文形式发送到SQS队列


注意:如果您使用CloudFormation/SAM创建API,您可以放弃所有这些,因为这使您能够直接设置RequestParameters和RequestTemplates。

我相信您希望设置
/
的路径,并像我在中所做的那样,将
队列URL
放入body mapping模板中。尝试过了,但没有成功。使用REST API,它可以按预期工作,问题似乎在于“WebSocket”WebSocket API和SQS/SNS(不确定是否支持其他AWS服务)目前不受支持。得到AWS支持团队的确认。目前,无法将HTTP头映射/添加为WebSocket API集成请求的一部分。