Регистрация не Java-приложения в соответствии с документацией Eureka API - выпуск - PullRequest
0 голосов
/ 22 апреля 2019

Eureka работает на моем локальном хосте: 8090.У меня есть независимые Java-приложения, зарегистрированные на этой Eureka, и я могу получить к ним доступ с помощью моего URL-адреса Zuul, который также зарегистрирован на этой Eureka.

Теперь у меня есть еще одно приложение Python (3.7.3) + Flask, котороеЯ пытаюсь зарегистрироваться в той же Eureka и получить доступ к этому через тот же URL Zuul.Мое приложение Python отлично работает локально через DOCKERFILE с этими командами -

EXPOSE 8443
CMD ["python", "PythonFlaskSample.py"]

Это открывает веб-страницу с этим URL - http://localhost:8443/home

Затем зарегистрировать это приложениев Eureka я следовал этой документации -

https://github.com/Netflix/eureka/wiki/Eureka-REST-operations и https://automationrhapsody.com/json-format-register-service-eureka/

Также пробовал то же самое через REST-клиенты с POST URL как - http://localhost:8090/eureka/v2/apps/PythonFlaskApp Content-Type: application / json

{
    "instance": {
        "hostName": "localhost",
        "app": "PythonFlaskSample",
        "vipAddress": "localhost",
        "secureVipAddress": "localhost",
        "ipAddr": "<Which IP>????",
        "status": "STARTING",
        "port": {"$": "8090", "@enabled": "true"},
        "securePort": {"$": "8443", "@enabled": "true"},
        "healthCheckUrl": "http://localhost:8090/health",
        "statusPageUrl": "http://localhost:8090/info",
        "homePageUrl": "http://localhost:8090",
        "dataCenterInfo": {
            "@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo", 
            "name": "MyOwn"
        },
    }
}

Но он выдает 405 и никакой другой подсказки о том, что произошло в клиенте Restlet или Postman.

Когда я пытаюсь поместить JSON Payload в файл python ииспользуйте POST оттуда,

request_body = {
    "instance": {
        "hostName": "localhost",
        "app": "PythonFlaskSample",
        "vipAddress": "localhost",
        "secureVipAddress": "localhost",
        "ipAddr": "<Which IP>????",
        "status": "STARTING",
        "port": {"$": "8090", "@enabled": "true"},
        "securePort": {"$": "8443", "@enabled": "true"},
        "healthCheckUrl": "http://localhost:8090/health",
        "statusPageUrl": "http://localhost:8090/info",
        "homePageUrl": "http://localhost:8090",
        "dataCenterInfo": {
            "@class": "com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo", 
            "name": "MyOwn"
        },
    }
}

data=json.dumps(request_body)
url="http://localhost:8090"
response = requests.post(url,data=json.dumps(request_body), headers = {'Content-type':'application/json'}).json()

print(response)

он показывает следующую ошибку-

docker run -p 8443: 8443 dockerpython {'timestamp': 1555717403333, 'status': 405, 'ошибка ':' Метод не разрешен ',' исключение ':' org.springframework.web.HttpRequestMethodNotSupportedException ',' message ': "Метод запроса' POST 'не поддерживается",' path ':' / '}

Что мне не хватает?

1 Ответ

0 голосов
/ 02 мая 2019

Это ошибка с документацией Eureka API в - https://github.com/Netflix/eureka/wiki/Eureka-REST-operations. После того, как я попробовал те же URL REST без "/ v2", все работало нормально. введите описание изображения здесь

...