Proxy Requests cục bộ theo tác vụ trong Google Cloud Composer
Tạo một Session Requests cục bộ theo tác vụ với tuyến đường tường minh thay vì thay đổi môi trường proxy của tiến trình worker dùng chung.
Với một tác vụ Cloud Composer cần một yêu cầu HTTP gửi đi qua proxy, hãy cấu hình máy khách HTTP bên trong callable của tác vụ:
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
Dùng callable này thông qua cách bố trí tác vụ sẵn có của DAG. Proxy phải truy cập được từ worker đang thực thi tác vụ. Đối với các lời gọi API công khai được phép mà không cần xác thực proxy, danh sách proxy HTTP cung cấp các ứng viên cho URL proxy HTTP của phiên. Hãy giữ URL đã xác thực hoặc cấu hình tài khoản khác trong nguồn bí mật dự kiến của bản triển khai.
Session và phản hồi đóng lại khi hàm kết thúc. trust_env=False tắt tích hợp môi trường của Requests, ngăn các thiết lập proxy kế thừa thay thế hành vi dự kiến của máy khách này, đồng thời cũng tắt việc chọn gói CA dựa trên môi trường của Requests. Nếu cần, hãy cung cấp gói CA dự kiến thông qua tùy chọn verify của máy khách này.
Các biến môi trường được cấu hình cho môi trường Airflow được quản lý có phạm vi rộng hơn và những hạn chế do nền tảng quy định. Việc truyền tuyến đường cho Session này giữ quyết định gắn với thao tác HTTP của tác vụ này mà không thay đổi os.environ cho mã khác trong tiến trình worker.