#amazon-web-services #amazon-sqs #chalice
Вопрос:
У меня есть приложение, которое я создаю с помощью Python Chalice, и я хотел бы создать прямую интеграцию со шлюзом REST API и очередью SQS без использования функции lambda. Мой код для шлюза выглядит следующим образом:
@app.route('/', methods=['POST'])
def index():
data = json.dumps(app.current_request.json_body)
queueURL = SQS.get_queue_url(QueueName=os.environ["INPUT_QUEUE_NAME"]).get('QueueUrl')
resp = SQS.send_message(QueueUrl=queueURL, MessageBody=data)
return resp
Я использую bobt3
для отправки данных, полученных с моей конечной точки, в очередь SQS, но на AWS она интегрируется непосредственно в лямбда-функцию, а не в очередь SQS. Как я могу этого достичь?
Комментарии:
1. Я не понимаю, о чем вы спрашиваете. Вы написали код, который выводит сообщение на корневой маршрут и добавляет его в очередь SQS в Chalice. Chalice-это бессерверный фреймворк для Лямбды, поэтому любая функция, созданная в Chalice, выполняется в лямбде. Вы спрашиваете, как реагировать на обработку элементов в очереди?
Ответ №1:
чаша не может настроить интеграцию между API-шлюзом и SQS. Чаша развертывает бессерверный python и минимальную конфигурацию для поддержки развертывания.
Для этого вам нужно будет сделать это с помощью консоли AWS/интерфейса командной строки AWS или развернуть cloudformation / terraform
Как работать с cloudformation
https://www.matthealy.com.au/blog/post/api-gateway-sqs-integration-cloudformation/
Как работать с консолью AWS
https://medium.com/@pranaysankpal/aws-api-gateway-proxy-for-sqs-simple-queue-service-5b08fe18ce50