แชร์ผ่าน


ความสามารถของ REST API สําหรับงาน Apache Airflow ใน Fabric Data Factory

Note

งาน Apache Airflow ขับเคลื่อนโดย Apache Airflow

Fabric Data Factory นําเสนอชุด API อันทรงพลังที่ทําให้ง่ายต่อการทําให้เป็นอัตโนมัติและจัดการงาน Apache Airflow ของคุณ คุณสามารถเชื่อมต่อกับแหล่งข้อมูลและบริการอื่น และสร้าง อัปเดต หรือตรวจสอบเวิร์กโฟลว์ของคุณด้วยโค้ดเพียงไม่กี่บรรทัด API ครอบคลุมทุกอย่างตั้งแต่การสร้างและแก้ไขงาน Apache Airflow ไปจนถึงการติดตาม ดังนั้นคุณจึงสามารถทําให้ข้อมูลของคุณไหลลื่นได้อย่างราบรื่นโดยไม่ต้องยุ่งยาก

กรณีการใช้งาน API สําหรับงาน Apache Airflow

API สําหรับงาน Apache Airflow ใน Fabric Data Factory สามารถใช้ได้ในสถานการณ์ต่างๆ:

  • การปรับใช้อัตโนมัติ: ปรับใช้ Apache Airflow Jobs โดยอัตโนมัติในสภาพแวดล้อมต่างๆ (การพัฒนา การทดสอบ การผลิต) โดยใช้แนวทางปฏิบัติ CI/CD
  • การตรวจสอบและการแจ้งเตือน: ตั้งค่าระบบตรวจสอบและแจ้งเตือนอัตโนมัติเพื่อติดตามสถานะของงาน Apache Airflow และรับการแจ้งเตือนหากเกิดความล้มเหลวหรือปัญหาด้านประสิทธิภาพ
  • การจัดการข้อผิดพลาด: ใช้การจัดการข้อผิดพลาดแบบกําหนดเองและกลไกการลองใหม่เพื่อให้แน่ใจว่างาน Apache Airflow ทํางานได้อย่างราบรื่นและกู้คืนจากความล้มเหลว

ทําความเข้าใจ API

ในการใช้ API สําหรับงาน Apache Airflow ใน Fabric Data Factory อย่างมีประสิทธิภาพ

  • ปลายทาง: ตําแหน่งข้อมูล API ให้การเข้าถึงการดําเนินการต่างๆ ของ Apache Airflow Job เช่น การสร้าง อัปเดต และการลบ Apache Airflow Jobs
  • การตรวจสอบสิทธิ์: การเข้าถึง API อย่างปลอดภัยโดยใช้กลไกการตรวจสอบสิทธิ์ เช่น OAuth หรือคีย์ API
  • คําขอและการตอบสนอง: ทําความเข้าใจโครงสร้างของคําขอ API และการตอบสนอง รวมถึงพารามิเตอร์ที่จําเป็นและผลลัพธ์ที่คาดหวัง
  • ขีดจํากัดอัตรา: ระวังขีดจํากัดอัตราที่กําหนดไว้กับการใช้งาน API เพื่อหลีกเลี่ยงไม่ให้เกินจํานวนคําขอที่อนุญาต

รองรับ CRUD

CRUD ย่อมาจาก Create, Read, Update และ Delete ซึ่งเป็นการดําเนินการพื้นฐานสี่แบบที่สามารถทําได้บนข้อมูล ใน Fabric Data Factory การดําเนินการ CRUD ได้รับการสนับสนุนผ่าน Fabric API สําหรับ Data Factory API เหล่านี้ช่วยให้ผู้ใช้สามารถจัดการงาน Apache Airflow ของตนโดยทางโปรแกรม นี่คือประเด็นสําคัญบางอย่างเกี่ยวกับการสนับสนุน CRUD:

  • สร้าง: สร้างงาน Apache Airflow ใหม่โดยใช้ API
  • อ่าน: ดึงข้อมูลเกี่ยวกับงาน Apache Airflow ที่มีอยู่
  • อัปเดต: อัปเดตงาน Apache Airflow ที่มีอยู่
  • ลบ: ลบงาน Apache Airflow ที่ไม่จําเป็นอีกต่อไป

เอกสารอ้างอิงออนไลน์หลักสําหรับ Microsoft Fabric REST API สามารถพบได้ในเอกสาร Microsoft Fabric REST API

API เพิ่มเติมที่นําเสนอในงาน Apache Airflow

นอกจาก CRUD API แล้ว ยังมีชุด API การดําเนินงานเพิ่มเติมสําหรับงาน Apache Airflow:

  • API การจัดการไฟล์
  • API การจัดการพูล
  • API การตั้งค่าพื้นที่ทํางาน

เริ่มต้นใช้งาน REST API สําหรับงาน Apache Airflow

เอกสารต่อไปนี้สรุปวิธีการสร้าง อัปเดต และจัดการงาน Apache Airflow และกรณีการใช้งานการดําเนินงานโดยใช้ Fabric Data Factory API

รับโทเค็นการรับรองความถูกต้อง

ก่อนที่คุณจะใช้ REST API อื่น คุณจําเป็นต้องมีโทเค็นแบเรอร์

สําคัญ

ในตัวอย่างต่อไปนี้ ตรวจสอบให้แน่ใจว่าคําว่า 'Bearer ' (มีช่องว่าง) อยู่ก่อนหน้าโทเค็นการเข้าถึงเอง เมื่อใช้ไคลเอ็นต์ API และเลือก 'โทเค็นแบเรอร์' เป็นชนิดการรับรองความถูกต้อง 'Bearer ' จะถูกแทรกโดยอัตโนมัติสําหรับคุณและจําเป็นต้องมีโทเค็นการเข้าถึงที่จะให้มาโดยอัตโนมัติ

ตัวเลือกที่ 1: การใช้ MSAL.Net

ดู ส่วนรับโทเค็นของการเริ่มต้นใช้งานด่วน Fabric API เป็นตัวอย่างของวิธีการขอรับโทเค็นการอนุญาต MSAL

ใช้ MSAL.Net เพื่อรับโทเค็น Microsoft Entra ID สําหรับบริการ Fabric ที่มีขอบเขตต่อไปนี้: Workspace.ReadWrite.All, Item.ReadWrite.All สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการรับโทเค็นที่มี MSAL.Net ดู Token Acquisition - ไลบรารีการรับรองความถูกต้องของ Microsoft สําหรับ .NET

คัดลอกโทเค็นจากคุณสมบัติ AccessToken และแทนที่ตัวยึด <โทเค็นการเข้าถึง> ในตัวอย่างต่อไปนี้ด้วยโทเค็น

ตัวเลือกที่ 2: การใช้พอร์ทัล Fabric

ลงชื่อเข้าใช้พอร์ทัล Fabric สําหรับผู้เช่าที่คุณต้องการทดสอบ และกด F12 เพื่อเข้าสู่โหมดนักพัฒนาของเบราว์เซอร์ ในคอนโซลให้เรียกใช้:

powerBIAccessToken

คัดลอกโทเค็นและแทนที่ตัวแทน<โทเค็น>การเข้าถึงในตัวอย่างต่อไปนี้ด้วยโทเค็น

สร้างงานกระแสอากาศ Apache

สร้างงาน Apache Airflow ในพื้นที่ทํางานที่ระบุ

คําขอตัวอย่าง:

อูรี:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items

Headers:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Payload:

{
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "type": "ApacheAirflowJob"
}

ตัวอย่างการตอบสนอง:

{
  "id": "<artifactId>",
  "type": "ApacheAirflowJob",
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "workspaceId": "<workspaceId>"
}

สร้างงาน Apache Airflow พร้อมคําจํากัดความ

สร้างงาน Apache Airflow ด้วยคําจํากัดความสาธารณะในพื้นที่ทํางานที่ระบุ สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับการสร้าง Apache Airflow Job พร้อมคําจํากัดความ โปรดตรวจสอบ - Microsoft Fabric REST API

คําขอตัวอย่าง:

อูรี:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items

Headers:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Payload:

{
  "displayName": " My Apache Airflow Job",
  "description": "My Apache Airflow Job description",

  "type": "ApacheAirflowJob",
  "definition": { 
    "parts": [ 
      {
        "path": "ApacheAirflowJob.json",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      }
    ] 
  }
}

ตัวอย่างการตอบสนอง:

{
  "id": "<Your artifactId>",
  "type": "ApacheAirflowJob",
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "workspaceId": "<Your workspaceId>"
}

รับงานกระแสอากาศ Apache

ส่งคืนคุณสมบัติของงาน Apache Airflow ที่ระบุ

คําขอตัวอย่าง:

อูรี:GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

Headers:

{
  "Authorization": "Bearer <access-token>"
}

ตัวอย่างการตอบสนอง:

{
  "id": "<Your artifactId>",
  "type": "ApacheAirflowJob",
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "workspaceId": "<Your workspaceId>"
}

รับงาน Apache Airflow พร้อมคําจํากัดความ

ส่งคืนข้อกําหนดรายการงาน Apache Airflow สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับการรับงาน Apache Airflow พร้อมคําจํากัดความ โปรดตรวจสอบ - Microsoft Fabric REST API

คําขอตัวอย่าง:

อูรี:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/getDefinition

Headers:

{
  "Authorization": "Bearer <access-token>"
}

ตัวอย่างการตอบสนอง:

{
  "definition": {
    "parts": [
      {
        "path": "ApacheAirflowJob.json",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      }
    ]
  }
}

อัปเดตงานกระแสอากาศ Apache

อัปเดตคุณสมบัติของงาน Apache Airflow

คําขอตัวอย่าง:

อูรี:PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

Headers:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Payload:

{
  "displayName": "My Apache Airflow Job updated",
  "description": "My Apache Airflow Job description updated",
  "type": "ApacheAirflowJob"
}

ตัวอย่างการตอบสนอง:

{
  "id": "<Your artifactId>",
  "type": "ApacheAirflowJob",
  "displayName": "My Apache Airflow Job updated",
  "description": "My Apache Airflow Job description updated",
  "workspaceId": "<Your workspaceId>"
}

อัปเดต Apache Airflow Job ด้วยคําจํากัดความ

อัปเดตข้อกําหนดรายการงาน Apache Airflow สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับการอัปเดต Apache Airflow Job พร้อมคําจํากัดความ โปรดตรวจสอบ - Microsoft Fabric REST API

คําขอตัวอย่าง:

อูรี:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/updateDefinition

Headers:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

Payload:

{
  "displayName": "My Apache Airflow Job",
  "type": "ApacheAirflowJob",
  "definition": {
    "parts": [ 
      {
        "path": "ApacheAirflowJob.json",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      }
    ]
  }
}

ตัวอย่างการตอบสนอง:

200 OK

ลบงานกระแสอากาศ Apache

ลบงาน Apache Airflow ที่ระบุ

คําขอตัวอย่าง:

อูรี:DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

Headers:

{
  "Authorization": "Bearer <access-token>"
}

ตัวอย่างการตอบสนอง:

200 OK

API การจัดการไฟล์

รับไฟล์งาน Apache Airflow

ส่งคืนไฟล์งานจาก Apache Airflow ตามเส้นทาง

ขอ URI:GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}?preview=true

ตัวอย่างผลลัพธ์:

200 OK

สร้าง/อัปเดตไฟล์งาน Apache Airflow

สร้างหรืออัปเดตไฟล์ Apache Airflow Job

ขอ URI:PUT https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}?preview=true

ขอเพย์โหลด:

PYTHON files (DAGs), should be UTF-8 encoded

ตัวอย่างผลลัพธ์:

200 OK

ลบไฟล์งาน Apache Airflow

ลบไฟล์ Apache Airflow Job ที่ระบุ

ขอ URI:DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}?preview=true

ตัวอย่างผลลัพธ์:

200 OK

แสดงรายการไฟล์งาน Apache Airflow

แสดงรายการไฟล์ไฟล์ Apache Airflow Job ที่ระบุ

ขอ URI:GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files?rootPath=”my_folder”&continuationToken={token}?preview=true

โปรดทราบว่า rootPath และ continutationToken เป็นตัวเลือก

ตัวอย่างผลลัพธ์:

{
"files": [
{ filePath:string, sizeInBytes: int },
  ],
 "continuationToken": "LDEsMTAwMDAwLDA%3D "
"continuationUri": "https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files?continuationToken='LDEsMTAwMDAwLDA%3D'"
}  

การสนับสนุนชื่อบริการหลัก (SPN)

ชื่อบริการหลัก (SPN) ได้รับการสนับสนุนสําหรับงาน Apache Airflow ใน Fabric Data Factory

  • การรับรองความถูกต้อง: Airflow ใช้บริการหลักเพื่อรับรองความถูกต้องของการเรียก API ขาออก (ตัวอย่างเช่น ไปยังบริการ Azure หรือปลายทางที่ปลอดภัยอื่นๆ) สิ่งนี้ทําให้ DAG สามารถทํางานได้โดยไม่ต้องใส่ข้อมูลในขณะที่มั่นใจได้ว่าเฉพาะข้อมูลประจําตัวที่ได้รับอนุมัติเท่านั้นที่สามารถเข้าถึงทรัพยากรดาวน์สตรีมได้
  • การกําหนดค่า: หากต้องการใช้ SPN กับ Airflow ให้สร้างบริการหลักใน Azure Active Directory และให้สิทธิ์ที่จําเป็นสําหรับบริการเป้าหมาย ตัวอย่างเช่น ถ้า Airflow DAG ของคุณอ่านหรือเขียนไปยัง Azure Data Lake Storage บริการหลักจะต้องได้รับมอบหมายบทบาทที่เก็บข้อมูลที่เหมาะสม (เช่น Storage Blob Data Reader หรือ Contributor)
  • การเชื่อมต่อ: เมื่อกําหนดค่าการเชื่อมต่อ Airflow ใน Fabric Data Factory คุณสามารถอ้างอิงบริการหลักได้โดยระบุ ID ผู้เช่า ID ไคลเอ็นต์ และข้อมูลลับของไคลเอ็นต์ ข้อมูลประจําตัวเหล่านี้จะถูกใช้โดยโอเปอเรเตอร์ Airflow และ hooks เมื่อทําการเรียก API ที่ตรวจสอบสิทธิ์แล้ว
  • ความปลอดภัย: การใช้ SPN จะหลีกเลี่ยงการฝังข้อมูลประจําตัวของผู้ใช้โดยตรงในโค้ด DAG หรือไฟล์การกําหนดค่า นอกจากนี้ยังช่วยลดความยุ่งยากในการหมุนเวียนข้อมูลประจําตัว การตรวจสอบการเข้าถึง และการเพิกถอนการเข้าถึงโดยไม่ต้องเปลี่ยนแปลงตรรกะ Airflow DAG

สําหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการตั้งค่าและใช้ SPN ใน Fabric Data Factory โปรดดูที่ การสนับสนุน SPN ใน Data Factory

โปรดดูเนื้อหาต่อไปนี้สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ API ในงาน Apache Airflow ใน Fabric Data Factory: