不知何故,我无法使用环境变量中提到的服务名称来使用SQS队列。这是我所做的。
从环境变量中获取服务名称,使用python中的 套接字 库获取服务的IP地址,并使用该IP地址来格式化和创建QUEUE端点url。
import socketqueue_endpoint_service = os.getenv("QUEUE_ENDPOINT_SERVICE")queue_endpoint_port = os.getenv("QUEUE_ENDPOINT_PORT")feeder_queue = os.getenv("FEEDER_QUEUE")prediction_queue = os.getenv("PREDICTION_QUEUE")queue_endpoint_ip = socket.gethostbyname(queue_endpoint_service)queue_endpoint = f"http://{queue_endpoint_ip}:{queue_endpoint_port}"mc = boto3.client('sqs', endpoint_url=queue_endpoint, region_name='default')feeder_queue_url = f"{queue_endpoint}/queue/{feeder_queue}"prediction_queue_url = f"{queue_endpoint}/queue/{prediction_queue}"我现在可以通过点击flask应用程序中的端点来发送消息。
注意: 还使用了 Adiii 提到的新 docker 映像。不再使用旧图像。



