Как создать прямую интеграцию между шлюзом API и SQS в Python Chalice

#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