หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
การป้องกันการเข้าถึงขาออกของพื้นที่ทํางานช่วยให้สามารถควบคุมการสื่อสารภายนอกจากพื้นที่ทํางาน Microsoft Fabric ได้อย่างแม่นยํา เมื่อเปิดใช้งานคุณลักษณะนี้ รายการพื้นที่ทํางานทั้งหมด เช่น สมุดบันทึก ข้อกําหนดงาน Spark และ Lakehouses จะถูกจํากัดไม่ให้ทําการเชื่อมต่อขาออกไปยังปลายทางสาธารณะ เว้นแต่จะได้รับสิทธิ์การเข้าถึงอย่างชัดเจนผ่านจุดสิ้นสุดส่วนตัวที่มีการจัดการที่ได้รับอนุมัติ ความสามารถนี้มีความสําคัญสําหรับองค์กรในสภาพแวดล้อมที่ปลอดภัยหรือมีการควบคุม เนื่องจากช่วยป้องกันการขโมยข้อมูลและบังคับใช้ขอบเขตเครือข่ายขององค์กร
การกําหนดค่าการป้องกันการเข้าถึงขาออกสําหรับปริมาณงานวิศวกรรมข้อมูล
เมื่อต้องการกําหนดค่าการป้องกันการเข้าถึงขาออกสําหรับพื้นที่ทํางาน คุณสามารถเปิดใช้งานการตั้งค่าโดยใช้พอร์ทัล Fabric
- เปิดการตั้งค่าพื้นที่ทํางานและเลือก ความปลอดภัยเครือข่าย
- ภายใต้ การป้องกันการเข้าถึงขาออก ให้สลับ บล็อกการเข้าถึงสาธารณะขาออก เป็น เปิด
สําหรับคําแนะนําโดยละเอียด โปรดดูที่ ตั้งค่าการป้องกันการเข้าถึงขาออกของพื้นที่ทํางาน
การเรียกใช้งาน Spark โดยเปิดใช้งานการป้องกันการเข้าถึงขาออก
เมื่อเปิดใช้งานการป้องกันการเข้าถึงขาออกของพื้นที่ทํางาน การเข้าถึงอินเทอร์เน็ตสาธารณะทั้งหมดจากคลัสเตอร์ Spark จะถูกบล็อก รวมถึง:
-
pip installการดึงข้อมูลคําสั่งจาก Python Package Index (PyPI) - การเข้าถึงโดเมนสาธารณะ เช่น
https://login.microsoftonline.com - ความพยายามใดๆ ในการเข้าถึง API หรือเว็บไซต์ภายนอก
ข้อจํากัดนี้ถูกบังคับใช้ผ่านเครือข่ายเสมือนที่มีการจัดการ (VNET ที่มีการจัดการ) ที่เตรียมใช้งานโดย Microsoft Fabric สภาพแวดล้อมเครือข่ายที่ปลอดภัยเหล่านี้จะถูกแยกออกจากกัน เว้นแต่จะเชื่อมต่อกับทรัพยากรภายนอกอย่างชัดเจนผ่านปลายทางที่ได้รับอนุมัติ
การเชื่อมต่ออย่างปลอดภัยโดยใช้ปลายทางส่วนตัวที่มีการจัดการ
เมื่อการเข้าถึงขาออกถูกจํากัด เฉพาะปลายทางส่วนตัวที่มีการจัดการที่ได้รับอนุมัติเท่านั้นที่สามารถอํานวยความสะดวกในการเชื่อมต่อจากคลัสเตอร์ Spark ไปยัง:
- บริการภายนอก (เช่น Azure SQL, Blob Storage)
- พื้นที่ทํางาน Fabric อื่นๆ ภายในผู้เช่าเดียวกัน
เมื่อสร้างและอนุมัติตําแหน่งข้อมูลส่วนตัวที่มีการจัดการแล้ว จะกลายเป็นช่องทางเดียวที่ได้รับอนุญาตสําหรับการเข้าถึงข้อมูลขาออก
การติดตั้งไลบรารีอย่างปลอดภัยในพื้นที่ทํางานที่มีการป้องกันการเข้าถึงขาออก
เนื่องจาก Fabric บล็อกการรับส่งข้อมูลทางอินเทอร์เน็ตสาธารณะ คลัสเตอร์ Spark จึงไม่สามารถติดตั้งแพ็คเกจจาก PyPI ได้โดยตรงโดยใช้ pip install.
คุณมีสองตัวเลือกที่ปลอดภัยสําหรับการติดตั้งไลบรารีในพื้นที่ทํางานที่เปิดใช้งานการป้องกันการเข้าถึงขาออก:
อัปโหลดและใช้ไฟล์วงล้อ: เตรียมไฟล์วงล้อแพ็คเกจ Python ที่จําเป็นด้วยตนเองบนทรัพยากรการประมวลผลที่เชื่อถือได้ จากนั้นอัปโหลดไปยังสภาพแวดล้อม Fabric ของคุณ วิธีนี้ช่วยให้แน่ใจว่ามีการติดตั้งเฉพาะแพ็คเกจที่ได้รับอนุมัติและหลีกเลี่ยงการเข้าถึงอินเทอร์เน็ตสาธารณะ
โฮสต์มิเรอร์ PyPI ส่วนตัว: ตั้งค่าที่เก็บ PyPI ส่วนตัวบน Azure Storage และซิงโครไนซ์กับแพคเกจที่เลือกจากดัชนี PyPI สาธารณะ กําหนดค่าสภาพแวดล้อม Fabric ของคุณเพื่อติดตั้งแพ็คเกจจากมิเรอร์ส่วนตัวนี้โดยใช้ปลายทางส่วนตัวที่มีการจัดการ โดยรักษาความสอดคล้องกับนโยบายความปลอดภัยของเครือข่าย
เลือกแนวทางที่เหมาะกับความต้องการขององค์กรของคุณมากที่สุดสําหรับการจัดการแพ็คเกจและความปลอดภัย
ตัวเลือกที่ 1: อัปโหลดและใช้ไฟล์วงล้อ
ระบุแพ็คเกจที่ขาดหายไปซึ่งไม่รวมอยู่ในรันไทม์ Fabric Spark
เรียกใช้สคริปต์ต่อไปนี้บนทรัพยากรการประมวลผลของคุณเพื่อตั้งค่าสภาพแวดล้อม python ภายในเครื่องที่เหมือนกับรันไทม์ Microsoft Fabric Spark 1.3 สคริปต์นี้ต้องการไฟล์ YAML ที่มีรายการไลบรารีทั้งหมดที่รวมอยู่ในสภาพแวดล้อมที่อบไว้ล่วงหน้า
ตรวจสอบให้แน่ใจว่า ไลบรารีส่วนตัวที่โฮสต์ของ Microsoft ถูกลบออกจาก YAML นี้
wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh chmod 755 -R /usr/lib/miniforge3/ export PATH="/usr/lib/miniforge3/bin:$PATH" sudo apt-get update sudo apt-get -yq install gcc g++ conda env create -n <custom-env-name> -f Python<version>-CPU.yml source activate <custom-env-name>สามารถใช้สคริปต์เพื่อส่งผ่านไฟล์ requirements.txt ของคุณ ซึ่งมีแพ็คเกจและเวอร์ชันทั้งหมดที่คุณต้องการติดตั้งในรันไทม์ Spark โดยจะพิมพ์ชื่อของไฟล์ล้อใหม่/การพึ่งพาสําหรับข้อกําหนดไลบรารีอินพุตของคุณ
pip install -r <input-user-req.txt> > pip_output.txt cat pip_output.txt | grep "Using cached *"ดาวน์โหลด
.whlไฟล์ด้วยตนเองใช้ Environment Artifact เพื่ออัปโหลดวงล้อที่จําเป็นทั้งหมด
แนบสภาพแวดล้อมกับสมุดบันทึกหรืองาน
ตัวเลือกที่ 2: โฮสต์มิเรอร์ PyPI ส่วนตัวบน Azure Storage
ข้อกําหนดเบื้องต้น
- ทรัพยากรการประมวลผล เช่น เครื่องพัฒนา Linux, ระบบย่อย Windows สําหรับ Linux (WSL) หรือเครื่องเสมือน Azure (VM.
- บัญชีที่เก็บข้อมูล Azure เพื่อจัดเก็บแพคเกจที่มิเรอร์
- สาธารณูปโภค:
- Bandersnatch: เครื่องมือมิเรอร์ PyPI สําหรับการซิงโครไนซ์ที่เก็บ ดูเอกสารประกอบของ Bandersnatch
- Azure CLI, Blobfuse2 หรือ AzCopy: ยูทิลิตี้สําหรับการอัปโหลดและซิงโครไนซ์ไฟล์กับ Azure Storage
การซิงค์เริ่มต้นของที่เก็บ PyPI
ในขั้นตอนแรก คุณต้องทําการซิงค์ที่เก็บ PyPI ที่เก็บ PyPI ที่สมบูรณ์มีแพ็คเกจจํานวนมากและกําลังขยายอย่างต่อเนื่องดังนั้นการดาวน์โหลดครั้งแรกอาจใช้เวลาตั้งแต่ 8 ถึง 48 ชั่วโมงขึ้นอยู่กับฮาร์ดแวร์และเครือข่ายของคุณ สําหรับขนาดที่เก็บปัจจุบันและจํานวนแพ็คเกจ โปรดดูที่ สถิติ · PyPI
การบํารุงรักษา
จําเป็นต้องมีการตรวจสอบและอัปเดตเป็นระยะเพื่อให้มิเรอร์ซิงค์กัน ปัจจัยต่อไปนี้มีผลต่อความเร็วในการซิงโครไนซ์:
- ความเร็วเครือข่าย
- ทรัพยากรเซิร์ฟเวอร์ เช่น CPU, หน่วยความจํา และ I/O ของดิสก์บนทรัพยากรการประมวลผลที่เรียกใช้ Bandersnatch
- ความเร็วของดิสก์ (SSD เทียบกับ HDD) ส่งผลต่อความเร็วในการเขียนข้อมูล
- การตั้งค่าเริ่มต้นเทียบกับการซิงค์การบํารุงรักษา: การซิงค์เริ่มต้นจะดาวน์โหลดที่เก็บทั้งหมดและอาจใช้เวลาตั้งแต่ 8 ถึง 48 ชั่วโมง แต่การซิงค์ในภายหลังจะเร็วกว่าเนื่องจากจะอัปเดตเฉพาะแพ็คเกจใหม่หรือที่เปลี่ยนแปลงเท่านั้น
ขั้นตอนการตั้งค่า
ตั้งค่าเครื่องพัฒนา Linux VM หรือ Windows Subsystem สําหรับ Linux (WSL))
wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh chmod 755 -R /usr/lib/miniforge3/ # Add Python executable to PATH export PATH="/usr/lib/miniforge3/bin:$PATH"ติดตั้ง Bandersnatch เพื่อมิเรอร์ PyPI Bandersnatch เป็นเครื่องมือมิเรอร์ PyPI ที่ดาวน์โหลดที่เก็บ PyPI ทั้งหมดและไฟล์ดัชนีที่เกี่ยวข้องบนระบบไฟล์ในเครื่อง
# Install Bandersnatch pip install bandersnatchกําหนดค่า Bandersnatch: สร้างไฟล์ bandersnatch.conf ด้วยการกําหนดค่าที่ระบุในตัวอย่างบน GitHub ที่ bandersnatch/src/bandersnatch/example.conf
เรียกใช้คําสั่งมิเรอร์เพื่อทําการซิงโครไนซ์ครั้งเดียวกับเซิร์ฟเวอร์หลัก PyPI
bandersnatch --config <path-to-bandersnatch.conf> mirrorคําสั่งนี้จะสร้างไดเร็กทอรีย่อยต่อไปนี้ในไดเร็กทอรีมิเรอร์ของคุณบนระบบไฟล์โลคัล
Note
การซิงค์เริ่มต้นต้องใช้เวลาในการทํางาน (ดูที่ สถิติ · PyPI) Bandersnatch ยังรองรับการมิเรอร์แบบเลือกโดยใช้ปลั๊กอินรายการที่อนุญาตและรายการบล็อก ทําให้สามารถจัดการการพึ่งพาได้อย่างมีประสิทธิภาพมากขึ้น ด้วยการกรองบรรจุภัณฑ์ที่ไม่จําเป็น คุณสามารถลดขนาดของกระจก ลดทั้งต้นทุนและความพยายามในการบํารุงรักษา ตัวอย่างเช่น หากมิเรอร์มีไว้สําหรับ Fabric เท่านั้น คุณสามารถยกเว้นไบนารีของ Windows เพื่อเพิ่มประสิทธิภาพการจัดเก็บข้อมูล เราขอแนะนําให้ประเมินตัวเลือกการกรองเหล่านี้ตามกรณีการใช้งานของคุณ
ดูเพิ่มเติมที่ [การกรองมิเรอร์ — เอกสารประกอบของ Bandersnatch] (https://bandersnatch.readthedocs.io/en/latest/filtering_configuration.html)
ในการตรวจสอบการตั้งค่ามิเรอร์คุณสามารถใช้เซิร์ฟเวอร์ HTTP เพื่อให้บริการมิเรอร์ PyPI ในเครื่องของคุณ คําสั่งนี้เริ่มต้นเซิร์ฟเวอร์ HTTP อย่างง่ายบนพอร์ต 8000 ที่ให้บริการเนื้อหาของไดเร็กทอรีมิเรอร์:
cd <directory-to-mirror> python -m http.server 8000กําหนดค่า pip เพื่อใช้มิเรอร์ PyPI ในเครื่อง:
pip install <package> -index-url http://localhost:8000/simpleอัปโหลดมิเรอร์ไปยังบัญชีที่เก็บข้อมูล และเลือก เปิดใช้งานเว็บไซต์แบบคงที่ บนบัญชีที่เก็บข้อมูล Azure ของคุณ การตั้งค่านี้ช่วยให้คุณสามารถโฮสต์เนื้อหาแบบคงที่ เช่น PyPI ในหน้าดัชนี การเปิดใช้งานการตั้งค่านี้จะสร้างคอนเทนเนอร์ชื่อ $web โดยอัตโนมัติ
คุณสามารถใช้ Azure CLI หรือ AzCopy ของ blobfuse2 เพื่ออัปโหลดมิเรอร์ภายในเครื่องจากเครื่องพัฒนาของคุณไปยังบัญชีที่เก็บข้อมูล Azure ของคุณ
- อัปโหลดโฟลเดอร์แพคเกจไปยังคอนเทนเนอร์ที่คุณเลือกบนคอนเทนเนอร์บัญชีที่เก็บข้อมูล
- อัปโหลดโฟลเดอร์ Simple, PyPI, local-stats และ JSON ไปยังคอนเทนเนอร์ของบัญชีที่เก็บข้อมูล$web
หากต้องการใช้มิเรอร์นี้ในรายการสภาพแวดล้อม Fabric ของคุณ ให้สร้างตําแหน่งข้อมูลส่วนตัวที่มีการจัดการสองจุดใน Fabric:
- หนึ่งสําหรับคอนเทนเนอร์ blob (แพคเกจ)
- หนึ่งสําหรับเว็บไซต์แบบคงที่ (ดัชนี)
ใช้ Environment Artifact เพื่อระบุไฟล์ yml เพื่อติดตั้งการจัดการไลบรารีในสภาพแวดล้อม Fabric
dependencies: - pip - pip: - pytest==8.2.2 - --index-url https://<storage-account-name>.z5.web.core.windows.net/simpleหรือคุณสามารถติดตั้งแพ็คเกจได้โดยตรงภายในสมุดบันทึกโดยใช้
%pip installคําสั่ง:
%pip install pytest --index-url https://<storage-account-name>.z5.web.core.windows.net/simple
การทําความเข้าใจลักษณะการทํางานของเส้นทางไฟล์ในสมุดบันทึก Fabric
เมื่อทํางานกับข้อมูลใน Lakehouse ของคุณโดยใช้สมุดบันทึก Fabric คุณสามารถอ้างอิงไฟล์ได้สองวิธีหลัก:
เส้นทางสัมพัทธ์: วิธีนี้เป็นวิธีที่ง่ายและพบบ่อยที่สุด เมื่อคุณลากและวางไฟล์จากตัวสํารวจ Lakehouse ลงในเซลล์สมุดบันทึก ไฟล์จะใช้เส้นทางสัมพัทธ์ที่ชี้ไปยังไฟล์ภายใน Lakehouse ปัจจุบันของคุณ รูปแบบนี้ใช้งานได้โดยไม่ต้องกําหนดค่าเพิ่มเติม
ตัวอย่าง: Files/people.csv
รหัสประกายไฟ:
df = spark.read.format("csv").option("header", "true").load("Files/people.csv")เส้นทางที่มีคุณสมบัติครบถ้วน (เส้นทางสัมบูรณ์): เส้นทางนี้ให้ตําแหน่งที่สมบูรณ์ของไฟล์ รวมถึงพื้นที่ทํางานและชื่อ Lakehouse การกําหนดค่าเริ่มต้นของเซสชัน Spark ไม่ได้ตั้งค่าเพื่อแก้ไขเส้นทางเหล่านี้ ซึ่งอาจทําให้เกิดข้อยกเว้นการหมดเวลาซ็อกเก็ตเมื่อพยายามเข้าถึงข้อมูล
ตัวอย่าง (ทําให้เกิดข้อผิดพลาดการหมดเวลาของซ็อกเก็ต):
abfss://your_workspace@onelake.dfs.fabric.microsoft.com/your_lakehouse**.Lakehouse/Files/people.csv
วิธีแก้ปัญหาที่แนะนํา
เมื่อต้องการอ่านไฟล์โดยใช้เส้นทางที่มีคุณสมบัติครบถ้วน โดยเฉพาะอย่างยิ่งเมื่อเชื่อมต่อกับ Lakehouse ในพื้นที่ทํางานอื่น คุณต้องใช้รูปแบบ URI อื่น รูปแบบนี้ใช้รหัสพื้นที่ทํางานและรหัสเลคเฮาส์แทนชื่อที่แสดง สิ่งนี้ทําให้มั่นใจได้ว่าเซสชัน Spark สามารถแก้ไขเส้นทางและเข้าถึงข้อมูลได้อย่างถูกต้อง
- รูปแบบ URI ที่ถูกต้อง:
abfss://your_workspace_id@onelake.dfs.fabric.microsoft.com/your_lakehouse_id/Files/people.csv
วิธีค้นหา Workspace และ Lakehouse ID ของคุณ
คุณสามารถค้นหาตัวระบุที่ไม่ซ้ํากันเหล่านี้ได้ใน URL ของพื้นที่ทํางาน Fabric และ Lakehouse ของคุณ
รหัสพื้นที่ทํางาน: GUID ที่ปรากฏหลัง /groups/ ใน URL
เลคเฮาส์ ID: GUID ที่ปรากฏหลัง /lakehouses/ ใน URL
ตัวอย่าง: หาก URL ของคุณเป็น https://app.fabric.microsoft.com/groups/**4c8efb42-7d2a-4a87-b1b1-e7e98bea053d**/lakehouses/**5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8**/...
รหัส Spark ที่ถูกต้อง:
หลาม
df = spark.read.format("csv").option("header", "true").load("abfss://4c8efb42-7d2a-4a87-b1b1-e7e98bea053d@onelake.dfs.fabric.microsoft.com/5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8/Files/people.csv")
Note
ใช้วิธีการเดียวกันนี้เมื่อคุณต้องการเข้าถึงข้อมูลในพื้นที่ทํางานอื่น