Google Cloud Composer ನಲ್ಲಿ ಕಾರ್ಯ-ಸ್ಥಳೀಯ Requests ಪ್ರಾಕ್ಸಿ
ಹಂಚಿಕೆಯ worker ಪ್ರಕ್ರಿಯೆಯ ಪ್ರಾಕ್ಸಿ ಪರಿಸರವನ್ನು ಬದಲಿಸುವ ಬದಲು ಸ್ಪಷ್ಟ ಮಾರ್ಗವನ್ನು ಹೊಂದಿರುವ ಕಾರ್ಯ-ಸ್ಥಳೀಯ Requests Session ರಚಿಸಿ.
ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಒಂದು ಹೊರಹೋಗುವ HTTP ವಿನಂತಿ ಬೇಕಾಗುವ Cloud Composer ಕಾರ್ಯಕ್ಕೆ, 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 bundle ಆಯ್ಕೆಯನ್ನೂ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಅಗತ್ಯವಿದ್ದರೆ ಈ ಕ್ಲೈಂಟ್ನ verify ಆಯ್ಕೆಯ ಮೂಲಕ ಉದ್ದೇಶಿತ CA bundle ಒದಗಿಸಿ.
ನಿರ್ವಹಿತ Airflow ಪರಿಸರಕ್ಕೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ಪರಿಸರ ಅಸ್ಥಿರಗಳು ಹೆಚ್ಚಿನ ವ್ಯಾಪ್ತಿ ಮತ್ತು ವೇದಿಕೆ-ನಿರ್ಧಾರಿತ ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿವೆ. ಮಾರ್ಗವನ್ನು ಈ Session ಗೆ ನೀಡುವುದರಿಂದ ನಿರ್ಧಾರವು ಈ ಕಾರ್ಯದ HTTP ಕಾರ್ಯಾಚರಣೆಗೆ ಜೋಡಣೆಯಾಗಿರುತ್ತದೆ, worker ಪ್ರಕ್ರಿಯೆಯ ಇತರ ಕೋಡ್ಗಾಗಿ os.environ ಬದಲಿಸದೆ.