Google Cloud Composer ਵਿੱਚ ਟਾਸਕ-ਲੋਕਲ Requests ਪ੍ਰੌਕਸੀ
ਸਾਂਝੇ worker ਪ੍ਰੋਸੈਸ ਦਾ ਪ੍ਰੌਕਸੀ ਵਾਤਾਵਰਣ ਬਦਲਣ ਦੀ ਥਾਂ ਸਪਸ਼ਟ ਰੂਟ ਵਾਲਾ ਟਾਸਕ-ਲੋਕਲ Requests Session ਬਣਾਓ।
ਜੇ Cloud Composer ਟਾਸਕ ਨੂੰ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਇੱਕ ਬਾਹਰੀ HTTP ਬੇਨਤੀ ਚਾਹੀਦੀ ਹੈ, ਤਾਂ HTTP ਕਲਾਇੰਟ ਨੂੰ ਟਾਸਕ ਦੇ callable ਅੰਦਰ ਕਨਫਿਗਰ ਕਰੋ:
def fetch_status():
import requests
with requests.Session() as session:
session.trust_env = False
with session.get(
'https://api.example/health',
proxies={'https': 'http://proxy.example:8080'},
timeout=(5, 30),
) as response:
response.raise_for_status()
return response.status_code
ਇਹ callable DAG ਦੀ ਮੌਜੂਦਾ ਟਾਸਕ ਵਿਵਸਥਾ ਰਾਹੀਂ ਵਰਤੋ। ਪ੍ਰੌਕਸੀ ਟਾਸਕ ਚਲਾਉਣ ਵਾਲੇ worker ਤੋਂ ਪਹੁੰਚਯੋਗ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ API ਕਾਲਾਂ ਲਈ, HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਸੈਸ਼ਨ ਦੇ HTTP ਪ੍ਰੌਕਸੀ URL ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ। ਪ੍ਰਮਾਣਿਤ URL ਜਾਂ ਹੋਰ ਖਾਤਾ ਕਨਫਿਗਰੇਸ਼ਨ ਡਿਪਲਾਏਮੈਂਟ ਦੇ ਨਿਰਧਾਰਿਤ ਗੁਪਤ ਸਰੋਤ ਵਿੱਚ ਰੱਖੋ।
ਫੰਕਸ਼ਨ ਖ਼ਤਮ ਹੋਣ ’ਤੇ Session ਅਤੇ ਜਵਾਬ ਬੰਦ ਹੋ ਜਾਂਦੇ ਹਨ। trust_env=False Requests ਦੀ ਵਾਤਾਵਰਣ ਏਕੀਕਰਣ ਨੂੰ ਬੰਦ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਵਿਰਾਸਤੀ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ ਇਸ ਕਲਾਇੰਟ ਦੇ ਇੱਛਿਤ ਵਿਵਹਾਰ ਨੂੰ ਨਹੀਂ ਬਦਲ ਸਕਦੀਆਂ, ਅਤੇ Requests ਦੀ ਵਾਤਾਵਰਣ-ਆਧਾਰਿਤ CA ਬੰਡਲ ਚੋਣ ਵੀ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ। ਲੋੜ ਪੈਣ ’ਤੇ ਇਸ ਕਲਾਇੰਟ ਦੇ verify ਵਿਕਲਪ ਰਾਹੀਂ ਇੱਛਿਤ CA ਬੰਡਲ ਦਿਓ।
ਪ੍ਰਬੰਧਿਤ Airflow ਵਾਤਾਵਰਣ ਲਈ ਕਨਫਿਗਰ ਕੀਤੇ ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਦਾ ਦਾਇਰਾ ਵੱਡਾ ਹੁੰਦਾ ਹੈ ਅਤੇ ਪਲੇਟਫਾਰਮ ਵੱਲੋਂ ਤੈਅ ਸੀਮਾਵਾਂ ਹੁੰਦੀਆਂ ਹਨ। ਰੂਟ ਇਸ Session ਨੂੰ ਦੇਣ ਨਾਲ ਫ਼ੈਸਲਾ ਇਸ ਟਾਸਕ ਦੀ HTTP ਕਾਰਵਾਈ ਨਾਲ ਜੁੜਿਆ ਰਹਿੰਦਾ ਹੈ ਅਤੇ worker ਪ੍ਰੋਸੈਸ ਵਿੱਚ ਹੋਰ ਕੋਡ ਲਈ os.environ ਨਹੀਂ ਬਦਲਦਾ।