django AWS App Runner与EC2示例之间的通信

6gpjuf90  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(139)

我已经在几个问题中读到了这个主题,但我还没有找到解决方案。所以,我问了几乎相同的问题,就像许多人以前做过的那样:
我在App Runner服务器上部署了一个Django应用,在EC2示例上部署了一个后端进程(也是Python)。
我需要能够在这两个服务器之间传递值,所以当用户与django应用交互时,它会调用EC2后端,处理信息并返回输出。
目前,我正在尝试这样做:
在我的Django应用程序中,我有这样的代码。点击按钮时,它会执行ecconsult()

from django.shortcuts import render, HttpResponse
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
import requests

def home(request):
    return render(request, 'index.html')

def ecconsult(request):
    data_to_send = "communication test"
    response = requests.post('http://specific_host:specific_port/api/procesar', json=data_to_send)

    if response.status_code == 200:
        jsondatabe = response.text
        response_data = {'jsondatabe': jsondatabe}

    else:
        print('Error al procesar la call del backend')

    return render(request, 'index.html', response_data)

字符串
在我的EC2后端服务器上,我收到的数据如下:

from flask import Flask, request, jsonify
from flask_cors import CORS

app = Flask(__name__)

CORS(app, resources={r"/api/*": {"origins": "Django_app_domain"}})

@app.route('/')
def hello():
    print("accesing from outside")
    return 'Hello backend!'

@app.route('/api/procesar', methods=['POST'])
def procesar_datos():
    data = request.get_json()
    print(data)

    response = "connection successful"
    print("Returning data to webapp")
    return response

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=specific_port)


如果我在localhost中运行Django应用程序,它会完美地与EC2服务器进行通信,但是当我将其部署在App Runner服务器上时,它会给我一个:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)


有人有什么建议吗?如果我在App Runner上部署django应用程序,没有“request”库也能完美工作,但有了它会出现前面的错误(不应该是安装了这个库,但我也不排除任何可能性)。
我还尝试了flask_cors,以防止CORS关闭试图访问外部未知源的错误。

whlutmcx

whlutmcx1#

结果是日志进程给了我这个:

botocore 1.31.72 requires urllib3<1.27,>=1.25.4; python_version < "3.10", but you have urllib3 2.0.7 which is incompatible.

字符串
在localhost中,我使用的是与最新Python兼容的最新urllib 3,但由于App Runner的依赖性,我不得不将其更改为1.25.4版本。
谢谢你的建议!

相关问题