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 ':' / '}
Что мне не хватает?