ព្រុចស៊ី Requests ក្នុងកិច្ចការ Google Cloud Composer
បង្កើត Requests Session ជាក់លាក់សម្រាប់កិច្ចការ ជាមួយផ្លូវច្បាស់លាស់ ជំនួសឱ្យការផ្លាស់ប្តូរបរិស្ថានព្រុចស៊ីរបស់ដំណើរការ worker ដែលបានចែករំលែក។
សម្រាប់កិច្ចការ Cloud Composer ដែលត្រូវការសំណើ HTTP ចេញមួយតាមរយៈព្រុចស៊ី សូមកំណត់ HTTP client នៅក្នុង 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 ផ្តល់បេក្ខជនសម្រាប់ URL ព្រុចស៊ី HTTP របស់សេសសិន។ រក្សា URL ដែលបានផ្ទៀងផ្ទាត់ ឬការកំណត់គណនីផ្សេងទៀត នៅក្នុងប្រភពសម្ងាត់ដែលបានកំណត់សម្រាប់ការដាក់ពង្រាយ។
សេសសិន និងការឆ្លើយតបត្រូវបានបិទនៅពេលអនុគមន៍បញ្ចប់។ trust_env=False បិទ ការរួមបញ្ចូល Requests ជាមួយបរិស្ថាន ដែលរារាំងការកំណត់ព្រុចស៊ីដែលទទួលមរតកមិនឱ្យជំនួសឥរិយាបថដែលបានបម្រុងទុករបស់ client នេះ ហើយក៏បិទការជ្រើសរើស CA bundle ដោយផ្អែកលើបរិស្ថានរបស់ Requests ផងដែរ។ ផ្តល់ CA bundle ដែលបានបម្រុងទុកតាមជម្រើស verify របស់ client នេះ ប្រសិនបើចាំបាច់។
អថេរបរិស្ថានដែលបានកំណត់សម្រាប់បរិស្ថាន Airflow ដែលបានគ្រប់គ្រង មានវិសាលភាពធំជាង និងកំណត់ដោយវេទិកា។ ការផ្ទេរផ្លូវទៅសេសសិននេះ រក្សាការសម្រេចចិត្តភ្ជាប់នឹងប្រតិបត្តិការ HTTP របស់កិច្ចការនេះ ដោយមិនផ្លាស់ប្តូរ os.environ សម្រាប់កូដផ្សេងទៀតក្នុងដំណើរការ worker។