previous = Chef::Config[:http_proxy]
Chef::Config[:http_proxy] = 'http://proxy.example.net:8080'

remote_file '/var/tmp/package.zip' do
  source 'https://downloads.example.net/package.zip'
end

Chef::Config[:http_proxy] = previous

ค่าชั่วคราวได้หายไปก่อนที่รีซอร์สธรรมดานี้จะดาวน์โหลดสิ่งใด:

  1. Compile: Ruby ระดับบนสุดบันทึกค่า ตั้งพร็อกซีชั่วคราว ประกาศ remote_file แล้วคืนค่าเดิม
  2. Converge: รีซอร์สดำเนินการโดยใช้การกำหนดค่าที่มีอยู่ในตอนนั้น

พร็อกซีไคลเอนต์ที่เสถียรซึ่งมีข้อยกเว้นภายในที่เหมาะสมช่วยหลีกเลี่ยงปัญหาด้านจังหวะเวลานี้ ใช้ไวยากรณ์ข้อยกเว้นตามเอกสารของไคลเอนต์ที่ติดตั้งไว้ แทนการสมมติกฎ wildcard ของเชลล์ สำหรับการดาวน์โหลดอาร์ติแฟกต์สาธารณะโดยอิสระบนเส้นทางสาธารณะที่ได้รับอนุญาต รายการจากรายการพร็อกซี HTTPสามารถให้ปลายทาง HTTP ที่เสถียรเมื่อไคลเอนต์ Chef ไม่มีบัญชีพร็อกซีที่กำหนดค่าไว้หรือเก็บไว้ คงข้อยกเว้นภายในไว้ การเลือกที่อยู่ไม่เปลี่ยนเวลาที่ compile และ converge ใช้มัน

หากการดำเนินการหนึ่งต้องการเส้นทางพิเศษ ให้วางการเปลี่ยนการกำหนดค่าและการทำงานไว้ในขอบเขตเดียวกัน รีซอร์สแบบกำหนดเองที่มีพฤติกรรม unified-mode ที่เหมาะสมเป็นทางเลือกหนึ่ง แต่ Chef::Config ยังคงเป็นส่วนกลาง การแจ้งเตือนการอัปเดตไม่ทำงานอย่างไม่มีเงื่อนไข และรีซอร์สทำความสะอาดในภายหลังอาจไม่ทำงานเลยหลังจากเกิดข้อยกเว้น

พร็อพเพอร์ตี lazy source เลื่อนการประเมินพร็อพเพอร์ตีนั้น ไม่ใช่การกำหนดค่า Ruby โดยรอบ การทำงานของรีซอร์ส ณ เวลา compile เป็นทางเลือกที่รองรับแยกต่างหากเมื่อการดาวน์โหลดควรเกิดขึ้นตอนนั้น นอกจากนี้ยังเปลี่ยนจังหวะเวลาของการพึ่งพาและการแจ้งเตือน เลือกตามเวลาที่ไคลเอนต์ HTTP ใช้การตั้งค่าพร็อกซีของตน แทนที่จะคาดหวังว่าลำดับการประกาศจะให้การแยกจากกัน

บทความที่เกี่ยวข้อง