# เอกสาร Agent Lab > Agent Lab คือแพลตฟอร์ม AI agent สำหรับองค์กรของ Crescendo Lab เอกสารนี้อธิบายการดีพลอยหน้าเว็บและแอปคอนเทนเนอร์บน Agent Lab การจัดการเวอร์ชันและที่อยู่ และการตั้งงานตามกำหนดเวลา --- title: ภาพรวมการดีพลอย description: อัปโหลดไฟล์หรือซอร์สโค้ด แล้ว Agent Lab จะบิลด์เป็นเวอร์ชัน ออกที่อยู่ให้ และรันให้ ทุกเวอร์ชันจะถูกเก็บไว้ url: https://agentlab.cresclab.com/docs/th/deploy language: th updated: 2026-10-06 --- # ภาพรวมการดีพลอย อัปโหลดไฟล์หรือซอร์สโค้ด แล้ว Agent Lab จะบิลด์เป็นเวอร์ชัน ออกที่อยู่ให้ และรันให้ ทุกเวอร์ชันจะถูกเก็บไว้ ## สิ่งที่ดีพลอยได้ - [เว็บไซต์แบบสแตติก](https://agentlab.cresclab.com/docs/th/deploy/static-site.md): HTML, CSS และ JavaScript ที่บิลด์แล้ว เช่น เนื้อหาใน `dist/` ไม่ต้องมีเซิร์ฟเวอร์ - [แอปคอนเทนเนอร์](https://agentlab.cresclab.com/docs/th/deploy/container-app.md): ซอร์สโค้ดที่มี Dockerfile ใช้กับ webhook, API และโค้ดที่ใช้ความลับหรือเรียกบริการอื่น - [ดีพลอยด้วยเครื่องมือ AI](https://agentlab.cresclab.com/docs/th/deploy/ai-agent.md): ให้ Claude Code หรือ Codex สร้างแอป อัปโหลด และเผยแพร่แทนคุณผ่าน MCP ## วิธีการทำงาน 1. **สร้างแอป** ตั้งชื่อและป้ายกำกับที่อยู่ ป้ายกำกับจะเป็นส่วนหนึ่งของที่อยู่แอป 2. **อัปโหลด** สิ่งที่อัปโหลดเป็นตัวกำหนดประเภทแอป ถ้าชั้นบนสุดมี `index.html` จะเป็นหน้าเว็บ ถ้ามี `Dockerfile` จะเป็นบริการ 3. **บิลด์และตรวจสอบ** แพลตฟอร์มบิลด์เวอร์ชันใหม่ และสแกนไฟล์หาความลับ ข้อมูลส่วนบุคคล และสคริปต์ที่โหลดจากภายนอก สำหรับแอปคอนเทนเนอร์จะสแกนแพ็กเกจในอิมเมจหาช่องโหว่ด้วย ทุกเวอร์ชันมีที่อยู่พรีวิวของตัวเอง 4. **เผยแพร่** เวอร์ชันแรกของแอปจะเผยแพร่เอง หลังจากนั้นคุณเป็นผู้เลือกว่าจะเผยแพร่เวอร์ชันใดเมื่อไร 5. **ย้อนกลับ** ถ้าเวอร์ชันใหม่มีปัญหา ให้เผยแพร่เวอร์ชันก่อนหน้าอีกครั้งโดยไม่ต้องบิลด์ใหม่ ## แนวคิดหลัก | คำ | ความหมาย | | -------------- | -------------------------------------------------------------------------- | | แอป | เว็บไซต์หรือบริการที่คุณดีพลอย มีที่อยู่ เวอร์ชัน และการตั้งค่าของตัวเอง | | เวอร์ชัน | สิ่งที่บิลด์จากการอัปโหลดหนึ่งครั้ง และจะไม่ถูกเขียนทับ | | ที่อยู่สาธารณะ | ที่อยู่ที่ผู้เข้าชมเปิด แสดงเวอร์ชันที่เผยแพร่อยู่ | | ที่อยู่ภายใน | ที่อยู่ที่เฉพาะบริการในองค์กรเดียวกันเรียกได้ | | สาขา | สภาพแวดล้อมอีกชุดของแอปเดียวกัน มีการตั้งค่า ความลับ และฐานข้อมูลของตัวเอง | ดูคำศัพท์ในทุกภาษาได้ที่[อภิธานศัพท์](https://agentlab.cresclab.com/docs/th/deploy/glossary.md) ## หน้าเว็บหรือบริการ > [!WARNING] ถ้ามีสิ่งใดต้องรันบนเซิร์ฟเวอร์ ให้ดีพลอยเป็นแอปคอนเทนเนอร์ > เช่น การรับ webhook หรือฟอร์ม การใช้ API key และการเรียกบริการอื่นจากเซิร์ฟเวอร์ API key ที่ใส่ไว้ในหน้าเว็บ ผู้เข้าชมทุกคนอ่านได้ --- title: ดีพลอยเว็บไซต์แบบสแตติก description: ดีพลอยหน้าเว็บที่บิลด์แล้วเป็นเว็บไซต์ที่มีที่อยู่ HTTPS url: https://agentlab.cresclab.com/docs/th/deploy/static-site language: th updated: 2026-10-06 --- # ดีพลอยเว็บไซต์แบบสแตติก ดีพลอยหน้าเว็บที่บิลด์แล้วเป็นเว็บไซต์ที่มีที่อยู่ HTTPS ## ก่อนเริ่มต้น - ไฟล์ที่บิลด์แล้ว เช่น โฟลเดอร์ `dist/` ที่ได้จาก `npm run build` - สิทธิ์ในการสร้างแอป เฉพาะผู้ดูแลระบบเท่านั้นที่สร้างแอปได้ ถ้าจะอัปโหลดเป็น zip ให้บีบอัดจากในโฟลเดอร์ เพื่อให้ `index.html` อยู่ชั้นบนสุดของ zip ```bash cd dist zip -r ../site.zip . ``` > [!WARNING] ข้อผิดพลาดที่พบบ่อย > ถ้าบีบอัดทั้งโฟลเดอร์ `dist` หน้าเว็บจะไปอยู่ที่ `dist/index.html` เวอร์ชันที่ไม่มี `index.html` ที่ชั้นบนสุดจะถูกปฏิเสธ ## 1. สร้างแอป 1. **เปิด ดีพลอย › แอป** เลือก **สร้างแอป** 2. **ใส่ชื่อและป้ายกำกับที่อยู่** ใช้ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก ตัวเลข และขีดกลาง เช่น `launch-page` > [!NOTE] ป้ายกำกับที่อยู่จะไม่ถูกนำไปใช้ซ้ำ > แม้จะลบแอปไปแล้ว ที่อยู่นั้นก็จะไม่มอบให้องค์กรอื่น โปรดตรวจตัวสะกดก่อนสร้างแอป ## 2. อัปโหลด **คอนโซล** ในแท็บ **ดีพลอย** ของแอป ลากโฟลเดอร์ ไฟล์ `.zip` หรือ `index.html` มาวางในพื้นที่อัปโหลด (หรือกดปุ่มเพื่อเลือก) แล้วเลือก **อัปโหลดและบิลด์** แพลตฟอร์มจะบิลด์เวอร์ชันใหม่ และสแกนหาความลับกับข้อมูลส่วนบุคคลในไฟล์ก่อนเผยแพร่ **เครื่องมือ AI** ในเครื่องมือ AI ที่เชื่อมต่อ Agent Lab MCP แล้ว ให้พิมพ์ว่า ```prompt ดีพลอย dist/ ไปที่แอป launch-page ของ Agent Lab ขอดูที่อยู่พรีวิวก่อน และรอฉันยืนยันก่อนเผยแพร่ ``` ดูวิธีตั้งค่าที่[ดีพลอยด้วยเครื่องมือ AI](https://agentlab.cresclab.com/docs/th/deploy/ai-agent.md) ## 3. เผยแพร่ เวอร์ชันแรกของแอปจะเผยแพร่เองเมื่อบิลด์สำเร็จ ผู้เข้าชมเปิดดูได้ที่ที่อยู่สาธารณะ ```text https://launch-page--acme.hosting.agentlab.run ``` เวอร์ชันถัดไปจะไม่เผยแพร่เอง ให้เปิดที่อยู่พรีวิวของเวอร์ชันนั้นเพื่อตรวจสอบ แล้วเลือก **เผยแพร่** ในแท็บ **ดีพลอย** ## ขั้นตอนถัดไป - [เวอร์ชัน การเผยแพร่ และการย้อนกลับ](https://agentlab.cresclab.com/docs/th/deploy/versions.md) - [ที่อยู่และการเข้าถึง](https://agentlab.cresclab.com/docs/th/deploy/addresses.md): ถ้าต้องการให้เฉพาะบางคนดู ให้ตั้งแอปเป็นส่วนตัวพร้อมรหัสผ่าน --- title: ดีพลอยแอปจาก Dockerfile description: ดีพลอยบริการที่ทำงานต่อเนื่อง เช่น webhook, API หรือเครื่องมือสำหรับเอเจนต์ จากซอร์สโค้ดที่มี Dockerfile url: https://agentlab.cresclab.com/docs/th/deploy/container-app language: th updated: 2026-10-06 --- # ดีพลอยแอปจาก Dockerfile ดีพลอยบริการที่ทำงานต่อเนื่อง เช่น webhook, API หรือเครื่องมือสำหรับเอเจนต์ จากซอร์สโค้ดที่มี Dockerfile ## ก่อนเริ่มต้น - โปรแกรมที่ตอบคำขอ HTTP - `Dockerfile` ที่ชั้นบนสุดของโปรเจกต์ ## 1. เขียน Dockerfile ตัวอย่าง Node.js นี้ให้เซิร์ฟเวอร์รอรับที่ `$PORT` อิมเมจ `EXPOSE` พอร์ตเดียว และรันด้วยผู้ใช้ที่ไม่ใช่ root ```dockerfile Dockerfile FROM node:22-slim WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev COPY . . USER node EXPOSE 8080 CMD ["node", "server.js"] ``` ```js server.js import { createServer } from "node:http"; const port = Number(process.env.PORT ?? 8080); createServer((req, res) => { res.writeHead(200, { "content-type": "application/json" }); res.end(JSON.stringify({ ok: true, path: req.url })); }).listen(port); ``` อิมเมจต้องเป็นไปตามข้อกำหนดเหล่านี้ ดูกฎทั้งหมดได้ที่[ข้อกำหนดการรันคอนเทนเนอร์](https://agentlab.cresclab.com/docs/th/deploy/runtime-contract.md) - มี `CMD` หรือ `ENTRYPOINT` ที่เริ่มเซิร์ฟเวอร์ - ให้บริการ HTTP ที่ `$PORT` - บิลด์สำหรับ `linux/amd64` - ระบบไฟล์เป็นแบบอ่านอย่างเดียว ยกเว้น `/tmp` ## 2. อัปโหลดซอร์สโค้ด ในแท็บ **ดีพลอย** ของแอป ลากโฟลเดอร์ซอร์สโค้ดหรือไฟล์ `.zip` มาวางในพื้นที่อัปโหลด แล้วเลือก **อัปโหลดและบิลด์** โดย `Dockerfile` ต้องอยู่ชั้นบนสุด ถ้าบีบอัด zip เอง อย่าใส่ `node_modules`, `.git` และ `.env` ```bash zip -r ../app.zip . -x 'node_modules/*' '.git/*' '.env*' ``` แพลตฟอร์มจะบิลด์อิมเมจ สแกนหาช่องโหว่และความลับ และตรวจว่าตรงตามข้อกำหนดการรันหรือไม่ สิ่งที่แพลตฟอร์มปรับให้จะแสดงเป็นประกาศในหน้าเวอร์ชัน เช่น "อิมเมจรันด้วย root จึงเปลี่ยนไปรันด้วย uid 10001" > [!NOTE] มีอิมเมจอยู่แล้ว? > พุชอิมเมจไปที่รีจิสทรีอิมเมจขององค์กร แล้วเลือกอิมเมจใน **ดีพลอยเวอร์ชันใหม่จาก** เพื่อสร้างเวอร์ชันจากอิมเมจนั้น ## 3. เผยแพร่และตรวจสถานะการทำงาน เวอร์ชันแรกของแอปจะเผยแพร่เองเมื่อบิลด์สำเร็จ เวอร์ชันถัดไปให้เลือก **เผยแพร่** ในแท็บ **ดีพลอย** แท็บ **การทำงาน** แสดงเวอร์ชันที่ให้บริการอยู่และจำนวนอินสแตนซ์ที่พร้อม > [!WARNING] เวอร์ชันไม่พร้อมเสียที > สาเหตุที่พบบ่อยคือพอร์ต เซิร์ฟเวอร์ไม่ได้รอรับที่พอร์ตที่แพลตฟอร์มกำหนด ดูวิธีแก้ที่[การแก้ปัญหาการดีพลอย](https://agentlab.cresclab.com/docs/th/deploy/troubleshooting.md#not-ready) ## 4. เพิ่มความลับ ป้อน API key และค่าลับอื่น ๆ ใน **ตั้งค่า** ของแอป แล้วให้โค้ดอ่านจากตัวแปรสภาพแวดล้อม การตั้งค่าที่บันทึกจะมีผลเมื่อรีสตาร์ตบริการ และอินสแตนซ์เดิมจะให้บริการต่อจนกว่าอินสแตนซ์ใหม่จะพร้อม ดู[การตั้งค่าแอป](https://agentlab.cresclab.com/docs/th/deploy/app-settings.md#secrets) > [!WARNING] อย่าใส่ความลับไว้ในซอร์สโค้ด > ถ้าการสแกนพบคีย์ในอิมเมจ ให้เอาออกจากซอร์สโค้ด ตั้งเป็นความลับของแอปแทน และเปลี่ยนคีย์ใหม่ --- title: ดีพลอยด้วยเครื่องมือ AI description: ให้ Claude Code, Codex หรือเครื่องมือ AI อื่นที่รองรับ MCP สร้างแอป อัปโหลด และเผยแพร่แทนคุณ คุณลงชื่อเข้าใช้ในเบราว์เซอร์เพียงครั้งเดียว url: https://agentlab.cresclab.com/docs/th/deploy/ai-agent language: th updated: 2026-10-06 --- # ดีพลอยด้วยเครื่องมือ AI ให้ Claude Code, Codex หรือเครื่องมือ AI อื่นที่รองรับ MCP สร้างแอป อัปโหลด และเผยแพร่แทนคุณ คุณลงชื่อเข้าใช้ในเบราว์เซอร์เพียงครั้งเดียว ## 1. เชื่อมต่อ Agent Lab MCP รันคำสั่งของเครื่องมือที่คุณใช้ในเทอร์มินัล แทนที่ `acme` ด้วยชื่อองค์กรของคุณ หน้า **MCP** ในคอนโซลจะแสดงคำสั่งที่ใส่ชื่อองค์กรไว้แล้ว **Claude Code** ```bash claude mcp add --transport http agentlab-acme https://api.agentlab.cresclab.com/v1/mcp ``` **Codex** ```bash codex mcp add agentlab-acme --url https://api.agentlab.cresclab.com/v1/mcp codex mcp login agentlab-acme ``` **เครื่องมือ MCP อื่น ๆ** เพิ่มเซิร์ฟเวอร์ MCP แบบ HTTP ที่ ```text https://api.agentlab.cresclab.com/v1/mcp ``` หน้าลงชื่อเข้าใช้จะเปิดในเบราว์เซอร์ ลงชื่อเข้าใช้และเลือกองค์กรเพื่อเชื่อมต่อให้เสร็จ > [!NOTE] ไม่ต้องใช้รหัสผ่าน โทเค็น หรือ API key > การให้สิทธิ์เกิดขึ้นในเบราว์เซอร์ การเชื่อมต่อนี้ทำได้เท่ากับที่คุณทำได้ในคอนโซล ไม่มากกว่านั้น ## 2. ขอให้ดีพลอย ในโฟลเดอร์โปรเจกต์ ขอให้เครื่องมืออ่านคู่มือการดีพลอยและทำตาม ```prompt อ่าน https://app.agentlab.cresclab.com/agent/deploy.md แล้วทำตามขั้นตอนเพื่อดีพลอยโฟลเดอร์นี้ไปที่องค์กร acme ใน Agent Lab ``` ถ้าต้องการให้ค้นข้อมูลในเอกสารนี้ ให้ส่งที่อยู่ Markdown ของหน้านั้น หรือสารบัญ `https://agentlab.cresclab.com/docs/th/llms.txt` เซิร์ฟเวอร์ MCP ยังมีเครื่องมือ `docs_read` ที่อ่านหน้าเดียวกันได้ ## 3. สิ่งที่เครื่องมือ AI ทำ 1. **ค้นหาหรือสร้างแอป** จะยืนยันป้ายกำกับที่อยู่กับคุณก่อน เพราะใช้ป้ายกำกับซ้ำไม่ได้ 2. **อัปโหลด** อัปโหลด zip ไปยังที่อยู่ที่แพลตฟอร์มให้มาโดยตรง ไฟล์ไม่ผ่านบทสนทนา 3. **รอการบิลด์** ตรวจสถานะเวอร์ชันจนกว่าการบิลด์จะสำเร็จหรือล้มเหลว 4. **ถามก่อนเผยแพร่** บอกว่าจะเผยแพร่เวอร์ชันใด แล้วรอให้คุณยืนยัน > [!NOTE] คุณยังเป็นผู้ป้อนความลับเอง > เครื่องมือจะบอกว่าต้องป้อนความลับที่ไหน แต่จะไม่ขอให้วางความลับในบทสนทนา ดูเครื่องมือทั้งหมดที่[เครื่องมือ MCP](https://agentlab.cresclab.com/docs/th/deploy/mcp-tools.md) --- title: เวอร์ชัน การเผยแพร่ และการย้อนกลับ description: การอัปโหลดทุกครั้งจะสร้างเวอร์ชันใหม่ เวอร์ชันจะไม่ถูกเขียนทับ และเวอร์ชันที่บิลด์สำเร็จสามารถเผยแพร่ได้ ไม่ว่าจะใหม่หรือเก่า url: https://agentlab.cresclab.com/docs/th/deploy/versions language: th updated: 2026-10-06 --- # เวอร์ชัน การเผยแพร่ และการย้อนกลับ การอัปโหลดทุกครั้งจะสร้างเวอร์ชันใหม่ เวอร์ชันจะไม่ถูกเขียนทับ และเวอร์ชันที่บิลด์สำเร็จสามารถเผยแพร่ได้ ไม่ว่าจะใหม่หรือเก่า ## ขั้นตอนการบิลด์ หลังอัปโหลด เวอร์ชันจะผ่านขั้นตอนเหล่านี้ตามลำดับ แถวของเวอร์ชันในแท็บ **ดีพลอย** จะแสดงขั้นตอนปัจจุบัน | ขั้นตอน | สิ่งที่แพลตฟอร์มกำลังทำ | | ------------ | ---------------------------------------------------------------------------------------------------------------------------- | | รอคิว | รอเครื่องบิลด์ และแสดงว่ามีกี่รายการอยู่ก่อน | | กำลังบิลด์ | บิลด์หน้าเว็บหรืออิมเมจคอนเทนเนอร์ | | กำลังสแกน | ตรวจหาความลับ ข้อมูลส่วนบุคคล และสคริปต์ที่โหลดจากภายนอก อิมเมจคอนเทนเนอร์จะถูกสแกนหาช่องโหว่และความลับด้วย | | กำลังตรวจสอบ | รวบรวมผลการสแกน | | รอการยืนยัน | การตรวจที่ตั้งเป็น "ถามก่อน" พบปัญหา หลังอ่านผลแล้ว คุณยังเผยแพร่ต่อได้ | | สำเร็จ | เผยแพร่เวอร์ชันได้ | | ล้มเหลว | เนื้อหาถูกปฏิเสธ หรือแพลตฟอร์มขัดข้อง ดู[การแก้ปัญหาการดีพลอย](https://agentlab.cresclab.com/docs/th/deploy/troubleshooting.md) | ผลการตรวจของแต่ละเวอร์ชันจะบอกว่าการตรวจแต่ละรายการถูกจัดการแบบใด: "หยุดการดีพลอย" "ถามก่อน" หรือ "ไม่ทำงาน" ## เผยแพร่ เวอร์ชันแรกของแอปจะเผยแพร่เองเมื่อบิลด์สำเร็จ เวอร์ชันถัดไปให้เลือก **เผยแพร่** ที่แถวของเวอร์ชันในแท็บ **ดีพลอย** ผู้เข้าชมจะเห็นเวอร์ชันใหม่ภายในหนึ่งนาที ก่อนเผยแพร่ ให้เปิดที่อยู่พรีวิวของเวอร์ชันนั้นเพื่อตรวจสอบ ทุกเวอร์ชันมีที่อยู่พรีวิวของตัวเองเสมอ ไม่ว่าเวอร์ชันใดจะเผยแพร่อยู่ ## ย้อนกลับ ถ้าเวอร์ชันใหม่มีปัญหา ให้หาเวอร์ชันก่อนหน้าในรายการแล้วเลือก **ย้อนกลับไปเวอร์ชันนี้** เป็นการทำงานเดียวกับการเผยแพร่ ไม่มีการอัปโหลดหรือบิลด์ใหม่ > [!NOTE] การเรียกภายในจะเปลี่ยนตามด้วย > แอปอื่นที่เรียกแอปนี้ผ่านที่อยู่ภายในจะไปถึงเวอร์ชันที่เผยแพร่อยู่ การเผยแพร่หรือการย้อนกลับจึงเปลี่ยนปลายทางของการเรียกเหล่านั้นด้วย ## สาขา เมื่อแอปมีหลายสาขา ทุกการทำงานจะมีผลกับสาขาที่คุณอยู่เท่านั้น ปุ่มอัปโหลดจะเป็น "อัปโหลดและเผยแพร่ใน ‹สาขา›" และการเผยแพร่มีผลเฉพาะสาขานั้น แต่ละสาขามีการตั้งค่าและความลับของตัวเอง ก่อนเผยแพร่เวอร์ชันในสาขาใด แพลตฟอร์มจะเปรียบเทียบชื่อตัวแปรและชื่อความลับของสาขานั้น และแจ้งถ้ามีรายการที่ขาดไป --- title: ที่อยู่และการเข้าถึง description: ทุกแอปมีที่อยู่สาธารณะ ที่อยู่พรีวิวของแต่ละเวอร์ชัน และที่อยู่ภายใน คุณจะเปิดเป็นสาธารณะหรือป้องกันด้วยรหัสผ่านก็ได้ url: https://agentlab.cresclab.com/docs/th/deploy/addresses language: th updated: 2026-10-06 --- # ที่อยู่และการเข้าถึง ทุกแอปมีที่อยู่สาธารณะ ที่อยู่พรีวิวของแต่ละเวอร์ชัน และที่อยู่ภายใน คุณจะเปิดเป็นสาธารณะหรือป้องกันด้วยรหัสผ่านก็ได้ ## ที่อยู่ 3 แบบ ที่อยู่ประกอบด้วยป้ายกำกับที่อยู่และชื่อองค์กร และใช้ HTTPS ทั้งหมด | ที่อยู่ | ใครเปิดได้ | ตัวอย่าง | | ------------------------ | ------------------------------------------------ | ------------------------------------------------------- | | ที่อยู่สาธารณะ | ทุกคน ถ้าแอปเป็นส่วนตัวต้องใช้รหัสผ่าน | `https://order-api--acme.hosting.agentlab.run` | | ที่อยู่พรีวิวของเวอร์ชัน | ผู้ที่มีที่อยู่ ถ้าแอปเป็นส่วนตัวต้องใช้รหัสผ่าน | เวอร์ชันละหนึ่งที่อยู่ แสดงข้างเวอร์ชัน | | ที่อยู่ภายใน | เฉพาะแอปในองค์กรเดียวกัน เบราว์เซอร์เปิดไม่ได้ | `https://order-api--acme.internal-hosting.agentlab.run` | ## ป้ายกำกับที่อยู่ คุณเลือกป้ายกำกับที่อยู่ตอนสร้างแอป ใช้ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก ตัวเลข และขีดกลาง เมื่อใช้แล้ว ป้ายกำกับจะเป็นขององค์กรคุณ แม้ลบแอปถาวรแล้วก็จะไม่มอบให้ผู้อื่น ## สาธารณะหรือส่วนตัว เลือกการเข้าถึงใน **ตั้งค่า** ของแอป | ตัวเลือก | ผล | | -------- | ---------------------------------------------------------------------------------------- | | สาธารณะ | ทุกคนที่มีที่อยู่ดูได้ | | ส่วนตัว | ทุกที่อยู่ของแอป (ที่อยู่สาธารณะและที่อยู่พรีวิวของแต่ละเวอร์ชัน) จะแสดงหน้ารหัสผ่านก่อน | คอนโซลสร้างรหัสผ่านและแสดงเพียงครั้งเดียว ถ้าทำหาย ให้สร้างใหม่ > [!NOTE] แอปส่วนตัวไม่ผ่าน CDN > เหมาะกับผู้ตรวจไม่กี่คน แต่ไม่เหมาะกับปริมาณการใช้งานสูง ## เรียกจากแอปอื่น แอปในองค์กรเดียวกันเรียกกันผ่านที่อยู่ภายใน - เฉพาะแอปขององค์กรคุณที่อยู่ภายในแพลตฟอร์มเท่านั้นที่เรียกได้ องค์กรอื่น ขั้นตอนบิลด์ และอินเทอร์เน็ตเรียกไม่ได้ - ใบรับรองเป็นแบบที่เชื่อถือได้สาธารณะ ไคลเอนต์ HTTP ทั่วไปจึงใช้ได้โดยไม่ต้องตั้งค่าเพิ่ม - การเรียกจะไปถึงเวอร์ชันที่เผยแพร่อยู่ - ที่อยู่ภายในไม่มีหน้ารหัสผ่าน ให้ป้องกันเอนด์พอยต์ที่สำคัญในโค้ดเอง คำขอที่มาทางที่อยู่ภายในจะมีส่วนหัว `X-Franky-Caller-App` ซึ่งเป็นป้ายกำกับที่อยู่ของแอปที่เรียก ให้เชื่อถือเฉพาะเมื่อ `Host` เป็นโดเมนภายใน ```js server.js const internal = req.headers.host?.endsWith(".internal-hosting.agentlab.run"); const caller = internal ? req.headers["x-franky-caller-app"] : undefined; if (req.url.startsWith("/admin") && caller !== "billing-worker") { res.writeHead(403).end(); return; } ``` --- title: การตั้งค่าแอป description: ใช้ ตั้งค่า ของแอปเพื่อเปลี่ยนพอร์ต ความลับ และการเข้าถึง หรือเพื่อหยุดชั่วคราวหรือลบแอปออก url: https://agentlab.cresclab.com/docs/th/deploy/app-settings language: th updated: 2026-10-06 --- # การตั้งค่าแอป ใช้ ตั้งค่า ของแอปเพื่อเปลี่ยนพอร์ต ความลับ และการเข้าถึง หรือเพื่อหยุดชั่วคราวหรือลบแอปออก ## พอร์ต แพลตฟอร์มเลือกพอร์ตของแอปคอนเทนเนอร์ตามลำดับนี้ และส่งให้โปรแกรมผ่านตัวแปรสภาพแวดล้อม `PORT` 1. ค่าใน **ตั้งค่า › การตั้งค่าการทำงาน › พอร์ต** ถ้ามี 2. ถ้าไม่มี ใช้พอร์ต TCP เดียวที่อิมเมจ `EXPOSE` 3. ถ้าไม่มีทั้งสองอย่าง ใช้ `8080` ## ความลับ ความลับคือค่าที่เป็นความลับ เช่น API key และโทเค็น คุณป้อนในคอนโซล และโค้ดอ่านเป็นตัวแปรสภาพแวดล้อม แต่ละสาขามีความลับของตัวเอง > [!WARNING] ป้อนความลับในคอนโซลเท่านั้น > อย่าใส่ไว้ในไฟล์หรือคำสั่ง และอย่าวางในบทสนทนากับเครื่องมือ AI ## นำการตั้งค่าไปใช้ การบันทึกการตั้งค่าการทำงานยังไม่เปลี่ยนสิ่งที่รันอยู่ หน้าภาพรวมจะแจ้งว่าการตั้งค่าเปลี่ยนไปแล้ว เลือก **รีสตาร์ตบริการ** เพื่อนำไปใช้ อินสแตนซ์เดิมจะให้บริการต่อจนกว่าอินสแตนซ์ใหม่จะพร้อม ## หยุดชั่วคราว ลบออก และลบถาวร | การทำงาน | สิ่งที่เกิดขึ้น | ย้อนกลับได้ไหม | | --------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------- | | หยุดแอปชั่วคราว | แอปออฟไลน์และผู้เข้าชมเห็นหน้าเป็นกลาง ทุกอย่างยังเก็บไว้ ระหว่างหยุดจะดีพลอยเวอร์ชันใหม่ไม่ได้ | ได้ เลือก **เปิดแอปต่อ** | | ลบแอปออก | แอปออฟไลน์ทันทีและเริ่มระยะผ่อนผัน 7 วัน | กู้คืนได้ภายใน 7 วัน หลังจากนั้นเวอร์ชันจะถูกลบ | | ลบถาวร | ทุกเวอร์ชันและที่อยู่ถูกลบทันที ต้องพิมพ์ชื่อแอปเพื่อยืนยัน | ไม่ได้ และที่อยู่จะไม่มอบให้ผู้อื่น | --- title: ข้อกำหนดการรันคอนเทนเนอร์ description: กฎที่อิมเมจของแอปคอนเทนเนอร์ต้องทำตาม ส่วนที่แพลตฟอร์มปรับได้จะปรับให้ และแสดงประกาศไว้ในหน้าเวอร์ชัน url: https://agentlab.cresclab.com/docs/th/deploy/runtime-contract language: th updated: 2026-10-06 --- # ข้อกำหนดการรันคอนเทนเนอร์ กฎที่อิมเมจของแอปคอนเทนเนอร์ต้องทำตาม ส่วนที่แพลตฟอร์มปรับได้จะปรับให้ และแสดงประกาศไว้ในหน้าเวอร์ชัน ## กฎ | รายการ | ข้อกำหนด | ถ้าไม่เป็นไปตามข้อกำหนด | | ------------------ | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | คำสั่งเริ่มต้น | ต้องมี `CMD` หรือ `ENTRYPOINT` | เวอร์ชันถูกปฏิเสธ | | พอร์ต | ให้บริการ HTTP ที่ `$PORT` | เลือกตามลำดับ การตั้งค่า → `EXPOSE` → 8080 ดู[การตั้งค่าแอป](https://agentlab.cresclab.com/docs/th/deploy/app-settings.md#port) | | แพลตฟอร์ม | `linux/amd64` | การพุชอิมเมจแพลตฟอร์มอื่นถูกปฏิเสธ | | ผู้ใช้ | แนะนำให้ตั้ง `USER` ที่ไม่ใช่ root | ถ้าเป็น root หรือไม่ได้ตั้ง จะรันด้วย uid 10001 กลุ่ม 0 ส่วน `USER` ที่ไม่มีในอิมเมจจะถูกปฏิเสธ | | ระบบไฟล์ | อ่านอย่างเดียว ยกเว้น `/tmp` | การเขียนที่อื่นจะล้มเหลว | | ข้อมูลรับรองคลาวด์ | แพลตฟอร์มไม่ได้ให้ | ใช้ความลับของแอปเพื่อเชื่อมต่อบริการภายนอก | เมื่ออิมเมจรันด้วย uid 10001 ไฟล์ที่อิมเมจอ่านต้องให้กลุ่ม 0 อ่านได้ ## ประกาศ สิ่งที่แพลตฟอร์มปรับจะแสดงเป็นประกาศในหน้าเวอร์ชันและแท็บ **ตรวจสอบ** ของอิมเมจ เครื่องมือ AI อ่านรหัสเดียวกันได้จากสถานะการดีพลอย | รหัส | ความหมาย | สิ่งที่ต้องทำ | | --------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | | `imageUserForced` | อิมเมจรันด้วย root จึงเปลี่ยนไปรันด้วย uid 10001 | ไม่ต้องทำอะไร ถ้าต้องการให้ประกาศหายไป ให้ตั้ง `USER` ที่ไม่ใช่ root ใน Dockerfile | | `imagePortFromExpose` | แอปรอรับที่พอร์ตเดียวที่อิมเมจ `EXPOSE` | ไม่ต้องทำอะไร | | `imagePortsAmbiguous` | อิมเมจ `EXPOSE` หลายพอร์ตและไม่มี 8080 จึงรันที่ 8080 ซึ่งมักไม่ใช่พอร์ตที่เซิร์ฟเวอร์รอรับ | เลือกพอร์ตที่ถูกต้องใน **ตั้งค่า › การตั้งค่าการทำงาน › พอร์ต** แล้วรีสตาร์ตบริการ หรือให้ Dockerfile `EXPOSE` เฉพาะพอร์ตนั้น | ## อิมเมจที่เขียนไฟล์ตอนเริ่มทำงาน บางอิมเมจเขียนไฟล์นอก `/tmp` ตอนเริ่มทำงาน เช่น `nginx:alpine` เขียนที่ `/var/cache/nginx` จึงเริ่มไม่ได้บนระบบไฟล์แบบอ่านอย่างเดียว ให้ใช้อิมเมจที่ไม่ต้องเขียนไฟล์ หรือย้ายตำแหน่งที่เขียนไปที่ `/tmp` ```dockerfile Dockerfile FROM nginxinc/nginx-unprivileged:alpine COPY dist/ /usr/share/nginx/html/ ``` > [!TIP] แค่ให้บริการไฟล์สแตติก? > ให้[ดีพลอยเป็นเว็บไซต์แบบสแตติก](https://agentlab.cresclab.com/docs/th/deploy/static-site.md)แทน ไม่ต้องรัน nginx เอง --- title: งานตามกำหนดเวลา description: งานตามกำหนดเวลาจะเรียก HTTP หนึ่งครั้งไปยังแอปหนึ่งขององค์กรคุณตามเวลาที่กำหนด คล้าย Google Cloud Scheduler url: https://agentlab.cresclab.com/docs/th/deploy/scheduled-jobs language: th updated: 2026-10-06 --- # งานตามกำหนดเวลา งานตามกำหนดเวลาจะเรียก HTTP หนึ่งครั้งไปยังแอปหนึ่งขององค์กรคุณตามเวลาที่กำหนด คล้าย Google Cloud Scheduler ## องค์ประกอบของงาน การเรียกจะไปถึงเวอร์ชันที่เผยแพร่อยู่ในขณะนั้น | ฟิลด์ | คำอธิบาย | | --------- | ---------------------------------------------------------------------------------------------------------------- | | แอป | แอปคอนเทนเนอร์ที่จะเรียก | | พาธ | ต่อท้ายที่อยู่ของแอป ขึ้นต้นด้วย `/` ใส่ query string ได้ เช่น `/tasks/daily` | | เมธอด | `GET`, `POST`, `PUT`, `PATCH` หรือ `DELETE` ค่าเริ่มต้นคือ `POST` จะส่งเนื้อหาเฉพาะกับ `POST`, `PUT` และ `PATCH` | | กำหนดเวลา | นิพจน์ cron 5 ฟิลด์: นาที ชั่วโมง วันที่ เดือน วันในสัปดาห์ ถี่สุดนาทีละครั้ง | | เขตเวลา | ค่าเริ่มต้นคือ `Asia/Taipei` | ตัวอย่างนิพจน์ cron | นิพจน์ | เวลาที่รัน | | -------------- | ------------------------------- | | `0 9 * * *` | ทุกวัน เวลา 09:00 | | `*/15 * * * *` | ทุก 15 นาที | | `0 8 * * 1` | ทุกวันจันทร์ เวลา 08:00 | | `0 0 1 * *` | วันที่ 1 ของทุกเดือน เวลา 00:00 | ## สร้างงาน 1. **เพิ่มเอนด์พอยต์ในแอป** เช่น `POST /tasks/daily` สำหรับงานที่ทำซ้ำ แล้วดีพลอยและเผยแพร่ 2. **สร้างงาน** เปิด **ดีพลอย › งานตามกำหนดเวลา** เลือกแอป แล้วใส่พาธและกำหนดเวลา 3. **รันเองหนึ่งครั้ง** ใช้ **รันทันที** แล้วตรวจรหัสการตอบกลับและบันทึกในประวัติการรัน ## ตรวจว่าการเรียกมาจากกำหนดเวลา โดยค่าเริ่มต้น การเรียกไม่มีหลักฐานว่ามาจากที่ใด เลือกวิธีใดวิธีหนึ่ง - ตั้งส่วนหัวของคุณเองในงาน เช่น `X-Cron-Secret` เก็บค่าเป็นความลับของแอป แล้วเปรียบเทียบในโค้ด - เปิดโทเค็นที่ลงนาม การเรียกจะมี `Authorization: Bearer ` ให้ตรวจสอบกับ `https://api.agentlab.cresclab.com/.well-known/jwks.json` โดย `aud` คือ `franky:app:` ## พฤติกรรมของการรัน | รายการ | พฤติกรรม | | ---------- | --------------------------------------------------------------------------------- | | การซ้อนกัน | ไม่ซ้อนกัน รอบที่ถึงเวลาขณะรอบก่อนยังทำงานอยู่จะถูกข้าม | | การส่ง | อย่างน้อยหนึ่งครั้ง จึงอาจได้รับซ้ำ ให้กรองรายการซ้ำด้วยส่วนหัว `X-Franky-Run-Id` | | การลองใหม่ | ค่าเริ่มต้น 0 ครั้ง สูงสุด 5 ครั้ง | | เวลาสูงสุด | 15 วินาทีถึง 30 นาที ค่าเริ่มต้น 3 นาที | ```js server.js const runId = req.headers["x-franky-run-id"]; if (await alreadyHandled(runId)) { res.writeHead(200).end(); return; } ``` --- title: การแก้ปัญหาการดีพลอย description: เมื่อเวอร์ชันล้มเหลว ให้อ่านสาเหตุในหน้าเวอร์ชันก่อน ถ้าเนื้อหาถูกปฏิเสธ ให้แก้แล้วอัปโหลดใหม่ ถ้าแพลตฟอร์มขัดข้อง ให้ลองอีกครั้ง url: https://agentlab.cresclab.com/docs/th/deploy/troubleshooting language: th updated: 2026-10-06 --- # การแก้ปัญหาการดีพลอย เมื่อเวอร์ชันล้มเหลว ให้อ่านสาเหตุในหน้าเวอร์ชันก่อน ถ้าเนื้อหาถูกปฏิเสธ ให้แก้แล้วอัปโหลดใหม่ ถ้าแพลตฟอร์มขัดข้อง ให้ลองอีกครั้ง ## เนื้อหาถูกปฏิเสธ | สิ่งที่เห็น | สาเหตุ | วิธีแก้ | | ---------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------- | | ไม่พบ `index.html` | บีบอัดทั้งโฟลเดอร์แทนที่จะเป็นเนื้อหาในโฟลเดอร์ | บีบอัดจากในโฟลเดอร์ให้ `index.html` อยู่ชั้นบนสุด | | พบความลับในไฟล์ | ไฟล์ที่อัปโหลดมีข้อความคล้าย API key หรือโทเค็น | ลบออกจากไฟล์ เปลี่ยนคีย์ใหม่ ป้อนใน **ตั้งค่า** ของแอป แล้วอัปโหลดใหม่ | | อิมเมจไม่มี `CMD` | Dockerfile ไม่มีคำสั่งเริ่มต้น | เพิ่ม `CMD` หรือ `ENTRYPOINT` | | ไม่มี `USER` นี้ | Dockerfile ระบุผู้ใช้ที่ไม่มีในอิมเมจ | ใช้ uid ที่เป็นตัวเลข หรือผู้ใช้ที่อิมเมจมี เช่น `node` | | การพุชถูกปฏิเสธ ไม่ใช่ amd64 | บิลด์เป็น arm64 บน Mac ชิป Apple | บิลด์ใหม่ด้วย `docker build --platform linux/amd64` | | ช่องโหว่ร้ายแรง | แพ็กเกจในอิมเมจมีช่องโหว่ร้ายแรงที่รู้จักแล้ว | อัปเกรดแพ็กเกจเป็นเวอร์ชันที่ผลการสแกนระบุ หรือเปลี่ยนไปใช้อิมเมจฐานรุ่นใหม่ที่มีเวอร์ชันนั้น | ## รอการยืนยัน เมื่อการตรวจที่ตั้งเป็น "ถามก่อน" พบปัญหา เวอร์ชันจะหยุดที่ **รอการยืนยัน** หลังอ่านผลแล้ว คุณยังเผยแพร่ต่อได้ ช่องโหว่ระดับสูงอยู่ในกลุ่มนี้ วิธีแก้เหมือนช่องโหว่ร้ายแรง และคำเตือนจะหายไปเมื่ออัปเกรดแล้ว ## เวอร์ชันไม่พร้อมเสียที ถ้าบิลด์สำเร็จและเผยแพร่แล้ว แต่แท็บ **การทำงาน** ไม่มีอินสแตนซ์ที่พร้อม ส่วนใหญ่เป็นเพราะเซิร์ฟเวอร์ไม่ได้รอรับที่พอร์ตที่แพลตฟอร์มกำหนด 1. ดูว่าหน้าเวอร์ชันมีประกาศ `imagePortsAmbiguous` หรือไม่ 2. ให้เซิร์ฟเวอร์รอรับที่ตัวแปรสภาพแวดล้อม `PORT` หรือใส่พอร์ตที่เซิร์ฟเวอร์รอรับจริงใน **ตั้งค่า › การตั้งค่าการทำงาน › พอร์ต** 3. เลือก **รีสตาร์ตบริการ** ## รีสตาร์ตซ้ำไปเรื่อย ๆ สาเหตุที่พบบ่อยคือโปรแกรมเขียนไฟล์นอก `/tmp` บนระบบไฟล์แบบอ่านอย่างเดียว ให้ย้ายไปเขียนที่ `/tmp` ดู[ข้อกำหนดการรันคอนเทนเนอร์](https://agentlab.cresclab.com/docs/th/deploy/runtime-contract.md#writable-paths) ## แพลตฟอร์มขัดข้อง เมื่อสาเหตุมาจากแพลตฟอร์มเอง ให้ลองเวอร์ชันเดิมอีกครั้ง ไม่ต้องแก้ไขหรืออัปโหลดใหม่ ## ยังแก้ไม่ได้ - ในแท็บ **การทำงาน** ดูสถานะอินสแตนซ์และบันทึกล่าสุด - ในแท็บ **ตรวจสอบ** ของอิมเมจ อ่านประกาศที่แพลตฟอร์มแสดงไว้ - ขอให้เครื่องมือ AI ที่เชื่อมต่อ Agent Lab MCP อ่านสถานะการดีพลอยให้ ซึ่งเห็นรหัสเดียวกับหน้านี้ --- title: เครื่องมือ MCP description: เครื่องมือเกี่ยวกับการดีพลอยบนเซิร์ฟเวอร์ Agent Lab MCP เครื่องมือ AI ทำได้ไม่เกินกว่าที่คุณทำได้ในคอนโซล url: https://agentlab.cresclab.com/docs/th/deploy/mcp-tools language: th updated: 2026-10-06 --- # เครื่องมือ MCP เครื่องมือเกี่ยวกับการดีพลอยบนเซิร์ฟเวอร์ Agent Lab MCP เครื่องมือ AI ทำได้ไม่เกินกว่าที่คุณทำได้ในคอนโซล ## ที่อยู่สำหรับเชื่อมต่อ ```text https://api.agentlab.cresclab.com/v1/mcp ``` ดูวิธีเชื่อมต่อที่[ดีพลอยด้วยเครื่องมือ AI](https://agentlab.cresclab.com/docs/th/deploy/ai-agent.md#connect) ทุกเครื่องมือต้องมีอาร์กิวเมนต์ `organization` ซึ่งเซิร์ฟเวอร์จะบอกค่าเมื่อเชื่อมต่อ ## แอปและเวอร์ชัน | เครื่องมือ | หน้าที่ | | ----------------------- | --------------------------------------------------------------- | | `sites_list` | แสดงรายการแอปพร้อมที่อยู่และที่อยู่ภายใน | | `sites_create` | สร้างแอป ป้ายกำกับที่อยู่ใช้ซ้ำไม่ได้ | | `sites_deploy` | เริ่มเวอร์ชันใหม่ และส่งคืนที่อยู่อัปโหลดกับโทเค็น | | `sites_deploy_finalize` | หลังอัปโหลดเสร็จ ส่งเวอร์ชันไปบิลด์ | | `sites_deploy_status` | ขั้นตอน สาเหตุที่ล้มเหลว พอร์ต และประกาศของเวอร์ชัน | | `sites_deploy_retry` | ลองเวอร์ชันที่ล้มเหลวจากแพลตฟอร์มอีกครั้ง โดยไม่ต้องอัปโหลดใหม่ | | `sites_promote` | เผยแพร่เวอร์ชัน และใช้ย้อนกลับด้วย | | `sites_runtime_status` | เวอร์ชันที่ให้บริการอยู่และจำนวนอินสแตนซ์ที่พร้อม | | `sites_restart` | นำการตั้งค่าที่บันทึกไปใช้โดยไม่หยุดบริการ | | `sites_files` | รายการไฟล์ของเวอร์ชัน ได้แก่ พาธ ขนาด และแฮช ไม่ส่งเนื้อหาไฟล์ | | `sites_lifecycle` | หยุดชั่วคราว เปิดต่อ ลบออก หรือกู้คืนแอป มีผลกับทุกสาขาพร้อมกัน | | `sites_purge` | ลบแอปถาวร ย้อนกลับไม่ได้ | ## งานตามกำหนดเวลา | เครื่องมือ | หน้าที่ | | ------------------------------------------------ | ----------------------------------------------------------- | | `scheduled_jobs_list`, `scheduled_jobs_get` | แสดงรายการงาน หรืออ่านงานหนึ่งงาน | | `scheduled_jobs_create`, `scheduled_jobs_update` | สร้างหรือแก้ไขงาน การแก้ไขจะแทนที่งานทั้งหมด จึงควรอ่านก่อน | | `scheduled_jobs_run` | รันงานทันที | | `scheduled_jobs_runs` | ประวัติการรันและบันทึกของแต่ละรอบ | | `scheduled_jobs_lifecycle` | หยุดชั่วคราว เปิดต่อ หรือลบงาน | ## สาขาและเอกสาร | เครื่องมือ | หน้าที่ | | ------------------- | ------------------------------------------------------- | | `environments_list` | แสดงรายการสาขาขององค์กร | | `docs_read` | อ่านเอกสารนี้เป็น Markdown ถ้าไม่ระบุหน้าจะส่งคืนสารบัญ | > [!NOTE] เมื่อมีหลายสาขา ต้องระบุสาขา > เมื่อองค์กรมีมากกว่าหนึ่งสาขา ทุกการเรียกต้องระบุสาขา มิฉะนั้นจะถูกปฏิเสธด้วย `environmentRequired` ## ลิงก์เอกสารในคำตอบ เมื่อการดีพลอยถูกปฏิเสธ ข้อมูลความล้มเหลวใน `sites_deploy_status` จะมี `help` ซึ่งชี้ไปที่[การแก้ปัญหาการดีพลอย](https://agentlab.cresclab.com/docs/th/deploy/troubleshooting.md)ฉบับ Markdown ภาษาอังกฤษ ส่วนประกาศของอิมเมจจะมี `noticesHelp` ซึ่งชี้ไปที่[ข้อกำหนดการรันคอนเทนเนอร์](https://agentlab.cresclab.com/docs/th/deploy/runtime-contract.md#notices) --- title: อภิธานศัพท์ description: คำศัพท์ที่เอกสารนี้ใช้ในทั้งสี่ภาษา โดยยึดตามคอนโซลก่อน คำที่คอนโซลไม่มีจึงอ้างอิงเอกสารภาษาท้องถิ่นของ Google Cloud, Cloudflare และ Vercel url: https://agentlab.cresclab.com/docs/th/deploy/glossary language: th updated: 2026-10-06 --- # อภิธานศัพท์ คำศัพท์ที่เอกสารนี้ใช้ในทั้งสี่ภาษา โดยยึดตามคอนโซลก่อน คำที่คอนโซลไม่มีจึงอ้างอิงเอกสารภาษาท้องถิ่นของ Google Cloud, Cloudflare และ Vercel ## คำศัพท์ | English | 正體中文 | 日本語 | ไทย | 參考 / Reference | | -------------------- | ------------ | ------------------ | ---------------------- | ---------------------------------------------- | | Deploy | 部署 | デプロイ | ดีพลอย | Google Cloud, Cloudflare, Vercel | | App | App | アプリ | แอป | Cloudflare Workers & Pages | | Version | 版本 | バージョン | เวอร์ชัน | Cloudflare Versions (Cloud Run: revision) | | Go live | 上線 | 公開 | เผยแพร่ | Vercel: Promote to Production | | Roll back | 回到先前版本 | ロールバック | ย้อนกลับ | Cloudflare Rollbacks, Vercel Instant Rollback | | Production | 正式環境 | 本番環境 | โปรดักชัน | Vercel, Cloudflare | | Preview address | 版本預覽網址 | プレビューアドレス | ที่อยู่พรีวิว | Cloudflare Preview URLs | | Public address | 對外網址 | 公開アドレス | ที่อยู่สาธารณะ | Agent Lab console | | Internal address | 內網網址 | 内部アドレス | ที่อยู่ภายใน | Agent Lab console | | Address label | 網址標籤 | アドレスラベル | ป้ายกำกับที่อยู่ | Agent Lab console | | Branch | 分支 | ブランチ | สาขา | Cloudflare Pages branches, Vercel Environments | | Build | 建置 | ビルド | บิลด์ | Google Cloud Build | | Container image | 容器映像檔 | コンテナイメージ | อิมเมจคอนเทนเนอร์ | Google Cloud Artifact Registry | | Image registry | 映像檔登錄檔 | イメージレジストリ | รีจิสทรีอิมเมจ | Google Cloud Artifact Registry | | Port | 通訊埠 | ポート | พอร์ต | Google Cloud | | Instance | 執行個體 | インスタンス | อินสแตนซ์ | Google Cloud Run | | Environment variable | 環境變數 | 環境変数 | ตัวแปรสภาพแวดล้อม | Google Cloud, Vercel, Cloudflare | | Secret | 密鑰 | シークレット | ความลับ | Google Secret Manager, Cloudflare Secrets | | Access | 存取權 | アクセス | การเข้าถึง | Google Cloud IAM | | Logs | 記錄 | ログ | บันทึก | Google Cloud Logging | | Scheduled job | 排程工作 | スケジュールジョブ | งานตามกำหนดเวลา | Google Cloud Scheduler | | Cron expression | cron 運算式 | cron 式 | นิพจน์ cron | Cloudflare Cron Triggers | | Time zone | 時區 | タイムゾーン | เขตเวลา | Google Cloud | | Restart | 重新啟動 | 再起動 | รีสตาร์ต | Google Cloud | | Pause / Resume | 暫停 / 恢復 | 一時停止 / 再開 | หยุดชั่วคราว / เปิดต่อ | Agent Lab console | | Remove / Restore | 移除 / 還原 | 削除 / 復元 | ลบออก / กู้คืน | Agent Lab console | | Delete permanently | 永久刪除 | 完全に削除 | ลบถาวร | Agent Lab console | | Notice | 提示 | お知らせ | ประกาศ | Agent Lab console | ## หลักการเลือกคำ - คำที่คอนโซลมีอยู่แล้วจะใช้ตามนั้น เพื่อให้เอกสารตรงกับหน้าจอ - คำที่คอนโซลไม่มี จะใช้คำแปลจากเอกสารภาษาไทยของ Google Cloud - คงคำทับศัพท์ไว้เมื่อวงการใช้กันทั่วไป เช่น ดีพลอย บิลด์ อินสแตนซ์ - ใช้ชื่อที่ผู้ใช้เห็นบนหน้าจอ เช่น ใช้ "สาขา" ไม่ใช้ชื่อภายในระบบว่า "สภาพแวดล้อม"