通过在 API Gateway 和 SQS 队列之间添加 Lambda 函数来解决此问题。
Lambda 函数可用于修改 APIGateway 发送到队列的消息内容。可以使用以下代码示例将所有消息都发送到 SQS 队列:
import json
import boto3
def lambda_handler(event, context):
sqs = boto3.client('sqs')
queue_url = 'YOUR_SQS_QUEUE_URL'
# Get message from APIGateway
message = event['queryStringParameters']['message']
# Send message to SQS queue
response = sqs.send_message(
QueueUrl=queue_url,
MessageBody=json.dumps({'message': message})
)
return {
'statusCode': 200,
'body': 'Message sent to SQS queue'
}
在此代码中,Lambda 函数从 APIGateway 的事件中获取消息并将其发送到指定的 SQS 队列。通过使用 Lambda 函数,你可以对消息进行更复杂的转换,并在发送到 SQS 队列之前对其进行验证和清理。