Score:0

การแก้ไขปัญหาคอนเทนเนอร์ Windows ในบริการแอป Azure

ธง cn

ฉันดิ้นรนมานานกว่าหนึ่งสัปดาห์เพื่อให้ได้คอนเทนเนอร์ Windows เพื่อทำงานกับ Azure App Service การตั้งค่าเริ่มต้นของฉันคือการใช้อินสแตนซ์คอนเทนเนอร์มาตรฐาน แต่ดูเหมือนว่าคุณมีตัวเลือกสำหรับเครือข่ายสาธารณะหรือส่วนตัวเท่านั้น แทนที่จะกำหนดเอง (ไม่เหมือนกับคอนเทนเนอร์ Linux) ดูเหมือนว่าถ้าคุณเรียกใช้คอนเทนเนอร์ Windows ภายในบริการแอพ คุณจะได้รับตัวเลือกเครือข่ายแบบเดียวกับที่คุณได้รับจากเว็บไซต์อื่นๆ การสนับสนุน Azure สำหรับคอนเทนเนอร์ Windows ใน App Services คือ อายุเกือบหนึ่งปีแต่มีทรัพยากรค่อนข้างน้อยที่จะจัดการกับมัน นอกเหนือจากสถานการณ์พื้นฐานมากๆ

จุดประสงค์ของฉันในการใช้คอนเทนเนอร์คือการเรียกใช้บริการ Windows พื้นหลังของบุคคลที่สามตามต้องการโดยไม่ต้องใช้โอเวอร์เฮดของ VM เนื่องจากมันใช้บริการแอพ ฉันจึงตัดสินใจเพิ่ม asp.net core rest endpoint สำหรับข้อมูลสถานะบางอย่าง คอนเทนเนอร์ของฉันขึ้นอยู่กับ mcr.microsoft.com/windows/servercore:ltsc2019. ฉันดาวน์โหลดและติดตั้ง .net และแกน asp.net (อิมเมจพื้นฐานมี .net framework เท่านั้น) ติดตั้งบริการของฉัน สร้างและเรียกใช้เว็บไซต์ จากนั้นจุดเข้าใช้งานของฉันคือสคริปต์ Powershell ที่อัปเดตค่าการกำหนดค่าบางอย่างและเรียกใช้ asp ปลายทางหลักสุทธิซึ่งจัดการบริการ

ถ้าฉันใช้พอร์ทัล ฉันสามารถเลือกตัวเลือกสำหรับคอนเทนเนอร์ vs โค้ด, Windows กับ Linux และเริ่มต้นสิ่งต่าง ๆ ด้วย ภาพเริ่มต้นอย่างรวดเร็วขั้นพื้นฐานแต่รูปภาพของฉันเองใน Azure Container Registry เริ่มทำงานไม่ถูกต้อง ฉันใช้หนึ่งใน ภาพฐานที่รองรับและทำงานได้ดีบนเครื่องของฉัน บน Azure มันสร้างทุกอย่าง แต่ไม่เคยเริ่มทำงานเลย การบันทึกจำนวนเล็กน้อยบ่งชี้ว่าเริ่มทำงาน ติดตั้งวอลุ่มการแชร์ไฟล์ จากนั้นโดยทั่วไปก็แค่ตาย:

  • สร้างคอนเทนเนอร์สำหรับรูปภาพ
  • กำลังพยายามเริ่มคอนเทนเนอร์
  • เริ่มคอนเทนเนอร์สำเร็จ
  • คอนเทนเนอร์เริ่มทำงานแล้ว
  • โทรกำหนดค่ายูทิลิตี้คอนเทนเนอร์
  • กำหนดค่ายูทิลิตีคอนเทนเนอร์เสร็จแล้ว
  • คอนเทนเนอร์เริ่มทำงานแล้ว
  • ความพยายามที่จะหยุดคอนเทนเนอร์
  • กำลังพยายามยุติคอนเทนเนอร์
  • กำลังพยายามนำคอนเทนเนอร์ออก
  • นำคอนเทนเนอร์ออกเรียบร้อยแล้ว

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

แปลกเช่นกัน แม้จะใช้รูปภาพเริ่มต้นอย่างรวดเร็ว แต่ฉันไม่เห็นคอนเทนเนอร์อินสแตนซ์จริง น่าจะเป็นเพราะมันทำงานใน App Service Plan โดยตรง แม้ว่าจะไม่มีความชัดเจนก็ตาม จากเว็บแอป ฉันสามารถไปที่ App Service Plan (แผน Windows Containers) ซึ่งภายใต้แอป จะแสดงแอปเดียวที่มีประเภทเป็น "แอป คอนเทนเนอร์ หน้าต่าง" แต่ฉันไม่พบการเข้าถึงเพื่อดูบันทึกของคอนโซลหรือ เรียกใช้เชลล์อย่างที่ฉันทำได้ด้วยทรัพยากรประเภทคอนเทนเนอร์อิมเมจ ในภาพหน้าจอบางภาพที่ฉันเจอ ฉันเห็นลิงก์ "การตั้งค่าคอนเทนเนอร์" ใต้ "การตั้งค่า" ซึ่งฉันไม่มี แต่อาจเป็นเพราะเหตุผลบางประการสำหรับคอนเทนเนอร์ Linux

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้น ฉันจะแก้ไขปัญหาเกี่ยวกับคอนเทนเนอร์ได้อย่างไรเมื่อทำงานภายในบริการแอป ฉันพลาดอะไรไปหรือเปล่า?

Score:1
ธง gb

การวินิจฉัย

คุณสามารถค้นหาข้อมูลการดีบักที่มีค่าได้เมื่อคุณคลิก วินิจฉัยและแก้ไขปัญหา -> การเตรียมใช้งานคอนเทนเนอร์ ใน Azure Web App สำหรับคอนเทนเนอร์

กูดู

App Service มาพร้อมกับดีบักคอนโซลที่คุณสามารถใช้สำหรับดีบั๊ก สำรวจ อัปโหลดไฟล์ รวมถึงปลายทาง JSON เพื่อรับข้อมูลเกี่ยวกับสภาพแวดล้อมของคุณ คอนโซลนี้เรียกว่า Kudu Console หรือ SCM Dashboard สำหรับแอปของคุณ

คุณสามารถเข้าถึงแดชบอร์ดนี้ได้โดยไปที่ลิงก์ https://[ชื่อแอปของคุณ].scm.azurewebsites.net/

บางสิ่งที่ Kudu มอบให้คือ:

  • การตั้งค่าสภาพแวดล้อมสำหรับดัมพ์การวินิจฉัยสตรีมบันทึกแอปพลิเคชันของคุณ ดีบักคอนโซลที่คุณสามารถเรียกใช้ PowerShell cmdlets และ DOS พื้นฐาน คำสั่ง

https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-performance-degradation

cn flag
ขอบคุณสำหรับการตอบสนอง การเริ่มต้นคอนเทนเนอร์ไม่ใช่ตัวเลือก ฉันเห็น "Available and Performance, "Configuration and Management", "SSL and Domains", "Risk Assessments" และ "Diagnostic Tools" เมื่อใช้ช่องค้นหา ไม่พบคำว่า "คอนเทนเนอร์" ฉันไม่สามารถใช้ Kudu Remote Execution Console ได้เนื่องจากคอนเทนเนอร์ไม่เริ่มทำงาน: "คอนเทนเนอร์ไม่ได้ทำงานอยู่ในขณะนี้ โปรดลองอีกครั้งในอีกสักครู่ กระบวนการ [9888] สิ้นสุดลง! กด ENTER เพื่อเริ่มกระบวนการ cmd ใหม่" ฉันควรจะดูข้อความ stdout ที่สร้างขึ้นจากการรัน dockerfile ได้หรือไม่
cn flag
ฉันเจอสถานที่บางแห่งในสตรีมบันทึกที่ให้ข้อมูลเพิ่มเติมเล็กน้อย: "ไม่สามารถเริ่มคอนเทนเนอร์ ข้อความแสดงข้อผิดพลาด: ไม่สามารถสร้างไฟล์เมื่อมีไฟล์นั้นอยู่แล้ว" แต่มันปรากฏขึ้นหลังจากลำดับการสร้าง เริ่มต้น หยุด ฯลฯ ดังนั้นฉันจึงไม่แน่ใจว่ามันเกิดขึ้นจริงที่ไหน
kh flag
หมายเหตุ: หากปรับใช้กับ ASE Kudu URI จะเป็น `https://{YourAppName}.scm.{YourASEName}.appserviceenvironment.net/`

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา