почему gunicorn в docker конвертирует мой почтовый запрос для получения запроса? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь вызвать службу после установки docker в AWS экземпляре ECS.

Ниже приведены подробные сведения о файле docker: Docker файл:

FROM containers.artifacts.wellmanage.com/wmc/awspython:3.7
LABEL maintainer="#Mosaic Federation #MosaicFederation@wellington.com"

# Local directory with project source
ENV FUNCTION_SRC=src
ENV FUNCTION_CONF=conf
# Directory in container for all project files
ENV FUNCION_SRVHOME=/usr/functions

ENV VIRTUAL_ENV=/opt/venv
RUN python -m virtualenv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
COPY requirements.txt requirements.txt
RUN /opt/venv/bin/pip install -r requirements.txt

WORKDIR $FUNCION_SRVHOME
COPY $FUNCTION_SRC/ $FUNCION_SRVHOME
COPY $FUNCTION_CONF $FUNCION_SRVHOME
RUN ls -ltr .

COPY conf/gunicorn.conf /gunicorn.conf

# Port to expose
EXPOSE 8080
ENTRYPOINT ["/opt/venv/bin/gunicorn", "--config", "/gunicorn.conf", "-k", "gevent", "app:app"]

gunicorn.conf

import multiprocessing

bind = "0.0.0.0:8080"
workers = 4
worker_class = "gevent"
worker_connections = 1000
loglevel = "debug"
keepalive = 30
timeout = 300

Flask python service

import sys

from flask import Flask, request
from flask_cors import CORS
from common.function_request import FunctionRequest
from prism_functions import PrismFunctionsController as functions_controller

app = Flask(__name__)
this = sys.modules[__name__]

app = Flask(__name__)
CORS(app, origins=[r'.*\.wellmanage\.com', 'http://localhost:*'])

@app.route('/execute', methods=['POST'])
def call_functions():
        print('received request')
        content = request.json
        function_request = FunctionRequest(content['id'], content['parameters'], content['columns'])
        return functions_controller.execute(function_request)

@app.route('/ping', methods=['GET'])
def ping():
    print('service is up')
    return 'service is up'


if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

Фактический запрос

    {
        "id" : "function1",
        "columns": ["col1", "col2", "col3"],
        "parameters": ["p1", "p2"]
    }

Использование метода POST в POSTMAN со следующей ссылкой: http://test-prism-functions.fi3tst.cltest.wellmanage.com/execute

Вывод из облачных часов ниже: 11:02:57 [2020-04-23 15:02:57 +0000] [12] [DEBUG] GET / execute

Несмотря на то, что мой звонок почтальона является почтовым запросом, он преобразуется в GET. Может кто-нибудь посоветовать, пожалуйста?

...