簡體   English   中英

Python django app部署在ecs上,本地沒有部署,ldap3連接失敗

[英]Python ldap3 connection fails when django app is deployed on ecs, but not on local

我有一個 django api 從 Active Directory 源流式傳輸數據並處理它。 我的連接看起來像這樣

from ldap3 import Server, Connection

        
server = Server(url, get_info=ALL)

conn = Connection(server, username, password, auto_bind=True)

我把這個應用程序放在一個容器上,dockerfile 很簡單,看起來像這樣

FROM python:3.9

EXPOSE 8002
# Install Dependencies   
ADD requirements.txt .
RUN pip install -r requirements.txt
ADD . .
CMD ./server.sh

Server.sh 也相當簡單:

#!/usr/bin/env bash
aws s3 cp s3://some_creds .

python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:80

現在,在本地和 gitpod 上,此連接都沒有問題。 我 go 在 conn 上進行搜索沒有問題。 但是,當我通過在本地運行的 ecr 在 ecs 上部署相同的容器時,出現此錯誤:

<class 'ldap3.core.exceptions.LDAPSocketOpenError'>, LDAPSocketOpenError('socket connection error while opening: [Errno 110] Connection timed out'), ('xxx.xxx.xxx.xxx', xxx))])

這可能是從 ssl 訪問 api 的副作用,但如果是這樣的話,我根本無法在語言環境中復制它。

這個錯誤只發生在 POST 請求上; 任何其他請求都按預期進行。

問題是由於Active Directory只能通過 vpn/代理訪問。 我使用的 gitpod 實例是公司提供的,因此它也具有對 AD 的網絡訪問權限。

這是通過使用默認訪問 this.network 的 VPC 解決的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM