Fra*_*ara 0 websocket boto3 aws-lambda aws-api-gateway
我将 WebSocket ApiGateway 与 AWS Lambda 集成一起使用。当我尝试使用Lambda 函数的post_to_connection方法将数据发布到客户端时,boto3.client('apigatewaymanagementapi')总是超时而没有任何错误消息。只有超时消息会记录在 CloudWatch 中:
3.00 秒后任务超时
我的代码:
import json
import boto3
import time
import urllib
api_client = boto3.client('apigatewaymanagementapi')
def lambda_handler(event, context):
connectionId = event['requestContext']['connectionId']
api_client.post_to_connection(ConnectionId=connectionId, Data=json.dumps({'test': '1'}))
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我发现这篇文章要求提供更清晰的 boto3 文档。事实证明,如果您实例化 apigatewaymanagementapi 客户端,您必须传递 endpoint_url 参数,但如果您不这样做,该函数将不会抛出任何错误。无论如何, api_client 应该像这样创建:
api_client = boto3.client('apigatewaymanagementapi',
endpoint_url='https://{api-id}.execute-api.{your-aws-region}.amazonaws.com/{stage}')
Run Code Online (Sandbox Code Playgroud)
注意:不要将末尾带有“@connections”的 url 字符串传递给 endpoint_url
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |