การสร้างแผน App Service และเว็บแอป
จัดเตรียมแผน App Service ทำความเข้าใจระดับ SKU และปรับใช้เว็บแอปจากไฟล์ ZIP หรือที่เก็บ GitHub โดยใช้การปรับใช้อย่างต่อเนื่อง
การสร้างแผน App Service และเว็บแอป เป็นบทเรียน Azure Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Azure Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
Azure App Service คืออะไร
Azure App Serviceคือ Platform as a Service (PaaS) ที่มีการจัดการเต็มรูปแบบสำหรับโฮสต์เว็บแอปพลิเคชัน REST API และแบ็กเอนด์สำหรับอุปกรณ์เคลื่อนที่ คุณ Deploy โค้ดของคุณ แล้ว Azure จะจัดการการอัปเดตแพตช์ OS การกระจายโหลด และการปรับขนาดอัตโนมัติของโครงสร้างพื้นฐานเบื้องหลังให้ App Service รองรับ.NET, Node.js, Python, Java, PHP, Ruby และคอนเทนเนอร์แบบกำหนดเอง จึงเป็นหนึ่งใน Service ด้านการประมวลผลที่ยืดหยุ่นที่สุดของ Azure
แผน App Service: หน่วยคิดค่าบริการ
แผน App Serviceกำหนดภูมิภาค OS (Windows หรือ Linux) และทรัพยากรการประมวลผล (CPU, RAM) ที่จัดสรรให้แอปของคุณ คุณจ่ายค่าบริการตามแผน ไม่ใช่ตามแอปแต่ละรายการ โดยสามารถให้หลายแอปใช้แผนเดียวกันได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม ระดับSKU ของแผนจะกำหนดฟีเจอร์ต่าง ๆ เช่น จำนวนช่อง Deploy ความสามารถในการปรับขนาดอัตโนมัติ และการรองรับการผสานรวมกับ VNet
# Create an App Service Plan (Linux, Standard S1 tier)
az appservice plan create \
--name MyAppServicePlan \
--resource-group MyRG \
--location eastus \
--sku S1 \
--is-linuxระดับ SKU ของแผน App Service
แผน App Service มีหลายระดับซึ่งมีความสามารถและค่าใช้จ่ายเพิ่มขึ้นตามลำดับ Free (F1) และ Shared (D1) ทำงานบนโครงสร้างพื้นฐานที่ใช้ร่วมกันและเหมาะสำหรับการพัฒนาเท่านั้น Basic (B1-B3) มีทรัพยากรการประมวลผลเฉพาะ แต่ไม่มีการปรับขนาดอัตโนมัติหรือช่อง Deploy Standard (S1-S3) เพิ่มการปรับขนาดอัตโนมัติและช่อง Deploy 5 ช่อง Premium (P1-P3v3) มีทรัพยากรการประมวลผลมากขึ้นและรองรับ VNet Isolated (I1-I3) ทำงานใน Environment ส่วนตัวที่มีทรัพยากรเฉพาะ
# App Service Plan tiers (ordered by capability)
# Free: F1 — shared, 60 min/day compute
# Shared: D1 — shared, custom domain support
# Basic: B1, B2, B3 — dedicated, no autoscale
# Standard: S1, S2, S3 — autoscale, 5 slots
# Premium: P1v3, P2v3, P3v3 — VNet integration
# Isolated: I1v2, I2v2 — App Service Environment (ASE)การสร้าง Web App
Web Appคือแอปพลิเคชันแต่ละรายการที่โฮสต์อยู่ภายในแผน App Service เว็บแอปแต่ละรายการจะได้รับชื่อโฮสต์เริ่มต้นที่ไม่ซ้ำกันในรูปแบบ <appname>.azurewebsites.net คุณระบุสแตกขณะทำงาน เช่น NODE:18-lts หรือ DOTNET:7.0 เมื่อสร้างแอป แต่สามารถอัปเดตภายหลังได้โดยไม่ต้อง Deploy ใหม่
# Create a Node.js Web App on the Linux plan
az webapp create \
--name MyUniqueWebApp \
--resource-group MyRG \
--plan MyAppServicePlan \
--runtime 'NODE:18-lts'
# Access the app
# https://MyUniqueWebApp.azurewebsites.netการ Deploy โค้ดไปยัง App Service
App Service รองรับวิธีการ Deploy หลายวิธี การ Deploy แบบ ZIPเป็นวิธีที่ง่ายที่สุด เพียงแพ็กเกจแอปแล้วส่งไฟล์ ZIP ขึ้นไป การ Deploy ผ่าน Gitจะเชื่อมต่อกับที่เก็บ Git และ Build เมื่อมีการส่งการเปลี่ยนแปลง GitHub Actions และ Azure Pipelinesเป็นการผสานรวม CI/CD ที่แนะนำ นอกจากนี้ยังสามารถ Deploy อิมเมจคอนเทนเนอร์ Docker จาก Azure Container Registry หรือรีจิสทรีสาธารณะใด ๆ ได้
# Deploy a ZIP package
zip -r app.zip . --exclude '.git/*' --exclude 'node_modules/*'
az webapp deploy \
--name MyUniqueWebApp \
--resource-group MyRG \
--src-path app.zip
# Configure deployment from GitHub
az webapp deployment source config \
--name MyUniqueWebApp \
--resource-group MyRG \
--repo-url https://github.com/myorg/myrepo \
--branch main \
--manual-integrationการตั้งค่าแอปพลิเคชันและตัวแปร Environment
App Service เปิดเผยการตั้งค่าแอปพลิเคชันเป็นตัวแปร Environment ให้โค้ดแอปของคุณ วิธีนี้เป็นวิธีที่แนะนำสำหรับส่งการกำหนดค่า เช่น สตริงการเชื่อมต่อฐานข้อมูล คีย์ API และแฟล็กฟีเจอร์ โดยไม่ต้องเขียนค่าเหล่านี้ลงในโค้ดโดยตรง การตั้งค่าจะถูกเข้ารหัสขณะจัดเก็บ และสามารถอ้างอิงข้อมูลลับใน Azure Key Vaultโดยใช้สตริงการอ้างอิง Key Vault ซึ่งช่วยขจัดความจำเป็นในการจัดเก็บข้อมูลลับไว้ในพอร์ทัล
# Set application settings
az webapp config appsettings set \
--name MyUniqueWebApp \
--resource-group MyRG \
--settings \
NODE_ENV=production \
DATABASE_URL='@Microsoft.KeyVault(SecretUri=https://mykv.vault.azure.net/secrets/dburl/)'
# View current settings
az webapp config appsettings list \
--name MyUniqueWebApp \
--resource-group MyRGAlways On และการตรวจสอบสถานะ
โดยค่าเริ่มต้น App Service จะยกเลิกการโหลดแอปหลังไม่มีการใช้งานเป็นระยะเวลาหนึ่ง ให้เปิดใช้Always On (ระดับ Standard ขึ้นไป) เพื่อให้แอปพลิเคชันโหลดอยู่ตลอดเวลา ซึ่งสำคัญสำหรับงานเบื้องหลังและ API ที่ต้องตอบสนองอย่างรวดเร็วเมื่อเริ่มทำงานใหม่ ฟีเจอร์การตรวจสอบสถานะจะส่งคำขอไปยัง URL ที่คุณกำหนด และนำอินสแตนซ์ที่ไม่สมบูรณ์ออกจากตัวกระจายโหลด ทำให้สามารถแทนที่อินสแตนซ์ได้โดยอัตโนมัติ
# Enable Always On
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--always-on true
# Configure health check endpoint
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--generic-configurations '{"healthCheckPath": "/health"}'บันทึกและการวินิจฉัยของ App Service
App Service มีการบันทึกในตัวสำหรับบันทึกแอปพลิเคชัน (stdout/stderr จากโค้ดของคุณ) บันทึกเว็บเซิร์ฟเวอร์ (บันทึกการเข้าถึง HTTP) และบันทึกการ Deploy คุณสามารถสตรีมบันทึกแบบเรียลไทม์โดยใช้ Azure CLI หรือเปิดใช้การจัดเก็บบันทึกใน Blob Storage เปิดใช้Application Insightsสำหรับการติดตามแบบกระจายและการตรวจสอบประสิทธิภาพตลอดวงจรชีวิตของคำขอ
# Enable application logging to file system
az webapp log config \
--name MyUniqueWebApp \
--resource-group MyRG \
--application-logging filesystem \
--level information
# Tail logs in real time
az webapp log tail \
--name MyUniqueWebApp \
--resource-group MyRGการปรับขนาด App Service ด้วยตนเอง
คุณสามารถปรับขนาด App Service ขึ้น (ไปยัง SKU ที่ใหญ่ขึ้นซึ่งมี CPU/RAM มากขึ้น) หรือ ขยายออก (เพิ่มอินสแตนซ์) ได้ การขยายจำนวนอินสแตนซ์ด้วยตนเองจะเพิ่มจำนวนอินสแตนซ์ทันที และใช้งานได้ตั้งแต่ระดับ Basic ขึ้นไป การปรับขนาดไปยังระดับที่สูงขึ้นจะเปิดใช้ฟีเจอร์เพิ่มเติม เช่น ช่องการปรับใช้และการผสานรวม VNet โดยไม่ขัดจังหวะบริการ — แอปจะเริ่มทำงานใหม่ชั่วครู่ระหว่างเปลี่ยน SKU
# Scale out: increase instance count to 3
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--number-of-workers 3
# Scale up: upgrade from S1 to P2v3
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--sku P2V3การตรวจสอบในพอร์ทัล Azure
บานหน้าต่างภาพรวม ของ App Service แสดงกราฟแบบเรียลไทม์สำหรับคำขอ เวลาในการตอบสนอง ข้อมูลขาเข้า/ขาออก และอัตราข้อผิดพลาด บานหน้าต่าง วินิจฉัยและแก้ไขปัญหา จะเรียกใช้ตัวตรวจจับอัตโนมัติสำหรับปัญหาทั่วไป แท็บ เมตริก ช่วยให้คุณปักหมุดแผนภูมิแบบกำหนดเองและตั้งกฎการแจ้งเตือนได้ ผสานรวมกับ ข้อมูลเชิงลึกของแอปพลิเคชัน เพื่อทำการติดตามคำขอแบบครบวงจรและสร้างแผนผังการพึ่งพาระหว่างส่วนต่าง ๆ ของสแตกแอปพลิเคชันทั้งหมด
# View recent HTTP metrics via CLI
az monitor metrics list \
--resource '/subscriptions/<sub>/resourceGroups/MyRG/providers/Microsoft.Web/sites/MyUniqueWebApp' \
--metric 'Requests,Http5xx,AverageResponseTime' \
--interval PT1M \
--start-time 2025-01-01T00:00:00Z \
--end-time 2025-01-01T01:00:00Zกลยุทธ์ด้านราคา App Service
เพิ่มประสิทธิภาพค่าใช้จ่ายของ App Service โดย รวมหลายแอปไว้ในแผนเดียว เมื่อแอปเหล่านั้นมีความต้องการทรัพยากรที่เข้ากันได้ ใช้ ระดับ Free สำหรับสภาพแวดล้อมการพัฒนาและการทดสอบ และใช้ Azure Reservations (สัญญาผูกพัน 1 หรือ 3 ปี) สำหรับภาระงาน Production ที่คาดการณ์ได้ เพื่อประหยัดค่าใช้จ่ายได้สูงสุด 55% การปรับขนาดอัตโนมัติ (ซึ่งจะกล่าวถึงในบทเรียนถัดไป) ช่วยให้คุณไม่ต้องจ่ายเงินสำหรับอินสแตนซ์ที่ไม่ได้ใช้งานในช่วงนอกเวลาเร่งด่วน
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด Microsoft Azure Fundamentals (AZ-900) จากบทเรียนนี้
ทบทวนบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า แผน App Service เป็นตัวกำหนดระดับการประมวลผลและหน่วยเรียกเก็บเงินสำหรับเว็บแอปของคุณ คุณสามารถปรับใช้โค้ดผ่าน ZIP, Git หรือไปป์ไลน์ CI/CD ได้ และ การตั้งค่าแอปพลิเคชัน จะฉีดการกำหนดค่าเป็นตัวแปรสภาพแวดล้อมโดยไม่ต้องฝังข้อมูลลับไว้ในโค้ด บทถัดไปเราจะสำรวจช่องการปรับใช้สำหรับการเผยแพร่ที่ไม่มีช่วงหยุดทำงาน
คำถามที่พบบ่อย
บทเรียน “การสร้างแผน App Service และเว็บแอป” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การสร้างแผน App Service และเว็บแอป” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Azure Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การสร้างแผน App Service และเว็บแอป”
จัดเตรียมแผน App Service ทำความเข้าใจระดับ SKU และปรับใช้เว็บแอปจากไฟล์ ZIP หรือที่เก็บ GitHub โดยใช้การปรับใช้อย่างต่อเนื่อง คุณปฏิบัติ Azure Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Azure Fundamentals หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Azure Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การสร้างแผน App Service และเว็บแอป” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Azure Fundamentals นี้ได้ไหม
ได้ บทเรียน Azure Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การสร้างแผน App Service และเว็บแอป
- ช่องการปรับใช้และการสลับ
- การปรับขนาดอัตโนมัติและโดเมนแบบกำหนดเอง
- การตรวจสอบสิทธิ์และเครือข่ายของ App Service