ติดตั้งแพคเกจส่วนตัวตามความต้องการในงานกระแสอากาศ Apache
หมายเหตุ
งานกระแสอากาศ Apache ขับเคลื่อนด้วย กระแสอากาศ Apache
แพคเกจ python คือวิธีการจัดระเบียบโมดูล Python ที่เกี่ยวข้องลงในลําดับชั้นไดเรกทอรีเดียว แพคเกจมักจะแสดงเป็นไดเรกทอรีที่ประกอบด้วยไฟล์พิเศษที่เรียกว่า init.py ภายในไดเรกทอรีแพคเกจ คุณสามารถมีไฟล์โมดูล Python ได้หลายไฟล์ (ไฟล์.py) ที่กําหนดฟังก์ชัน ระดับ และตัวแปร ในบริบทของงานกระแสอากาศ Apache คุณสามารถพัฒนาแพคเกจส่วนตัวของคุณเพื่อเพิ่มตัวดําเนินการกระแสอากาศ Apache แบบกําหนดเอง, ตะขอ, เซ็นเซอร์, ปลั๊กอิน ฯลฯ
ในบทช่วยสอนนี้ คุณจะสร้างตัวดําเนินการแบบกําหนดเองอย่างง่ายเป็นแพคเกจ Python เพิ่มเป็นข้อกําหนดในสภาพแวดล้อมงานกระแสอากาศ Apache และนําเข้าแพคเกจส่วนตัวเป็นโมดูลภายในไฟล์ DAG
พัฒนาตัวดําเนินการแบบกําหนดเองและทดสอบด้วย Apache Airflow Dag
สร้างไฟล์
sample_operator.py
และแปลงเป็นแพคเกจส่วนตัว อ้างอิงถึงคําแนะนํา: การสร้างแพคเกจใน pythonfrom airflow.models.baseoperator import BaseOperator class SampleOperator(BaseOperator): def __init__(self, name: str, **kwargs) -> None: super().__init__(**kwargs) self.name = name def execute(self, context): message = f"Hello {self.name}" return message
สร้างไฟล์
sample_dag.py
DAG กระแสอากาศ Apache เพื่อทดสอบตัวดําเนินการที่กําหนดไว้ในขั้นตอนที่ 1from datetime import datetime from airflow import DAG # Import from private package from airflow_operator.sample_operator import SampleOperator with DAG( "test-custom-package", tags=["example"] description="A simple tutorial DAG", schedule_interval=None, start_date=datetime(2021, 1, 1), ) as dag: task = SampleOperator(task_id="sample-task", name="foo_bar") task
สร้างที่เก็บ GitHub ที่มีใน
sample_dag.py
Dags
โฟลเดอร์ และไฟล์แพคเกจส่วนตัวของคุณ รูปแบบไฟล์ทั่วไปประกอบด้วยzip
,.whl
, หรือtar.gz
วางไฟล์ในโฟลเดอร์ 'Dags' หรือ 'Plugins' ตามความเหมาะสม ซิงโครไนซ์ Git Reposit ของคุณเข้ากับงานกระแสอากาศ Apache หรือคุณสามารถใช้ที่เก็บที่กําหนดค่าไว้ล่วงหน้า Install-Private-Package
เพิ่มแพคเกจของคุณตามความต้องการ
เพิ่มแพคเกจเป็นความต้องการภายใต้Airflow requirements
ใช้รูปแบบ /opt/airflow/git/<repoName>.git/<pathToPrivatePackage>
ตัวอย่างเช่น หากแพคเกจส่วนตัวของคุณอยู่ใน /dags/test/private.whl
ที่เก็บ GitHub ให้เพิ่มข้อกําหนด /opt/airflow/git/<repoName>.git/dags/test/private.whl
ลงในสภาพแวดล้อม Airflow