หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
เรียนรู้วิธีสร้าง โฮสต์ ลงทะเบียน และเผยแพร่เอเจนต์ Agent 365 ที่ทํางานบน AWS Elastic Beanstalk โดยใช้ Agent 365 CLI Microsoft Entra และ Graph ให้ข้อมูลประจำตัว สิทธิ์ และ Blueprint ของเอเจนต์ ขณะที่ AWS Elastic Beanstalk ให้รันไทม์
หากคุณต้องการชี้เอเจนต์ของคุณไปยังโค้ดที่อยู่หลังจุดเชื่อมต่อ AWS คุณต้องทำเพียงขั้นตอนนี้เท่านั้น: กำหนดค่าการโฮสต์ที่ไม่ใช่ Azure จากนั้นทำตามขั้นตอนอื่นๆ ทั้งหมดจาก เริ่มต้นใช้งานการพัฒนา Agent 365
เป้าหมาย
เรียนรู้วิธีใช้ Agent 365 และ Microsoft 365 เป็นชั้นการควบคุม และ:
- ปรับใช้รันไทม์ของเอเจนต์บน AWS Elastic Beanstalk
- กําหนดค่า
a365.config.jsonสำหรับโฮสติ้งที่ไม่ใช่ Azure - สร้าง Blueprint เอเจนต์ใน Entra ID
- กําหนดค่า OAuth2 + สิทธิ์ที่สืบทอดได้
- ลงทะเบียนจุดเชื่อมต่อการส่งข้อความของ Bot Framework ที่ชี้ไปที่ AWS
- สร้างข้อมูลประจำตัวเอเจนต์ + ผู้ใช้เอเจนต์
- (ไม่บังคับ) เผยแพร่ไปยังพื้นที่แอป Microsoft 365
- ทดสอบการโต้ตอบแบบครบวงจร
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณได้ปฏิบัติตามข้อกำหนดเบื้องต้นของ Azure / Microsoft 365, AWS และสภาพแวดล้อมภายในเครื่องที่ระบุไว้ต่อไปนี้แล้ว
ข้อกำหนดเบื้องต้นของ Azure / Microsoft 365
ยืนยันการเข้าถึงผู้เช่า Microsoft Entra ของคุณ และติดตั้งเครื่องมือต่อไปนี้เพื่อสร้างข้อมูลประจำตัว Blueprint และลงทะเบียนเอเจนต์ของคุณ
ผู้เช่า Microsoft Entra ที่มี:
- สิทธิ์หรือบทบาทในการสร้างแอปพลิเคชันและ Blueprint เอเจนต์ (ผู้ดูแลระบบส่วนกลางหรือเทียบเท่า)
- การเป็นสมาชิกใน โปรแกรมพรีวิว Frontier เพื่อเข้าถึง Microsoft Agent 365 แบบล่วงหน้า
- ต้องมีสิทธิการใช้งาน Microsoft 365 อย่างน้อยหนึ่งรายการสำหรับผู้ใช้เอเจนต์
ข้อกำหนดเบื้องต้นสำหรับ Amazon Web Services (AWS)
ตรวจสอบให้แน่ใจว่าบริการและเครื่องมือของ AWS ต่อไปนี้ถูกตั้งค่าเพื่อการปรับใช้และจัดการสภาพแวดล้อม Elastic Beanstalk ของคุณ
- บัญชี AWSที่มีสิทธิ์เหมาะสม
- เปิดใช้งานการเข้าถึง AWS Elastic Beanstalk
- ติดตั้งและกำหนดค่า AWS CLI
- ติดตั้ง Elastic Beanstalk CLI
ข้อกำหนดเบื้องต้นของสภาพแวดล้อมของนักพัฒนาเฉพาะที่
ติดตั้งและกำหนดค่าเครื่องมือต่อไปนี้ภายในเครื่องเพื่อสร้าง เรียกใช้ และปรับใช้เอเจนต์
ตัวแก้ไขโค้ด: ใช้ Visual Studio Code หรือ Visual Studio
.NET SDK: ใช้ .NET 8.0 SDK หรือใหม่กว่า
AWS Toolkit: ติดตั้งส่วนขยายนี้จาก Visual Studio หรือ Visual Studio Code ลงชื่อเข้าใช้โดยใช้ข้อมูลประจำตัว AWS Identity and Access Management (IAM) ของคุณ
การเข้าถึง LLM API: เลือกบริการที่เหมาะสมตามการกำหนดค่าของเอเจนต์ของคุณหรือผู้ให้บริการโมเดลที่คุณต้องการ:
- คีย์ OpenAI API: รับคีย์ OpenAI API ของคุณ
- Azure OpenAI: สร้างและปรับใช้ทรัพยากร Azure OpenAI เพื่อรับคีย์ API และจุดเชื่อมต่อของคุณ
สร้างและปรับใช้เอเจนต์ .NET
คำสั่งต่อไปนี้อธิบายวิธีการสร้างเอเจนต์แบบขั้นต่ำที่:
- ตอบกลับ GET
/ - ยอมรับกิจกรรม Bot Framework ผ่าน POST
/api/messages
สร้างไดเรกทอรีโครงการ
mkdir aws-a365-agent
cd aws-a365-agent
เริ่มต้นโปรเจกต์ .NET
เพื่อให้การใช้งานของคุณง่ายขึ้น บทความนี้ใช้ตัวอย่างที่เตรียมไว้แล้ว ลอกแบบ ที่เก็บตัวอย่าง Agent365 และไปที่ตัวอย่าง dotnet\semantic-kernel\sample-agent
เอเจนต์ตัวอย่าง Semantic Kernel - C#/.NET ประกอบด้วย:
- เว็บ API แบบขั้นต่ำของ ASP.NET Core
- ตัวจัดการข้อความของ Bot Framework ที่
/api/messages -
จุดเชื่อมต่อการตรวจสอบสุขภาพ ที่
/ - การรวม Semantic Kernel สำหรับความสามารถของ AI
ไปที่ dotnet\semantic-kernel\sample-agent และยืนยันว่าโครงการสร้างสำเร็จ:
dotnet restore
dotnet build
กำหนดค่าโมเดล
ทำตามคำแนะนำใน ขั้นตอนที่ 2: การกำหนดค่า LLM เพื่อกำหนดค่าโปรเจกต์โดยใช้คีย์ Open API ของคุณ
ทดสอบในเครื่อง (ไม่บังคับ)
ก่อนปรับใช้กับ AWS ให้ทดสอบเอเจนต์ของคุณในเครื่อง:
# Run the application dotnet runทดสอบจุดเชื่อมต่อในเทอร์มินัลอื่น:
# Test agent endpoint locally curl http://localhost:3978กด
Ctrl+Cเพื่อหยุดเซิร์ฟเวอร์เฉพาะที่
สร้างและปรับใช้งาน
เลือกตัวเลือกที่คุณต้องการสร้างและปรับใช้แอปพลิเคชันตัวอย่างนี้:
- ตัวเลือก A: สร้างและปรับใช้จาก Visual Studio
- ตัวเลือก B: สร้างและปรับใช้กับ AWS Elastic Beanstalk โดยใช้ CLI
ตัวเลือก A: สร้างและปรับใช้จาก Visual Studio
ใช้ AWS Toolkit for Visual Studio เพื่อเผยแพร่แอปไปยัง Elastic Beanstalk โดยใช้ตัวช่วยสร้างที่มีขั้นตอนแนะนำ
ใน Solution Explorer ให้คลิกขวาที่โครงการของคุณ
เลือก เผยแพร่ไปยัง AWS Elastic Beanstalk
ทําตาม ตัวช่วยสร้างการปรับใช้งาน Beanstalk:
- เลือกโปรไฟล์ข้อมูลประจําตัว AWS ของคุณ
- เลือกภูมิภาค (ตัวอย่างเช่น
us-east-1) - เลือกแพลตฟอร์ม (
.NET Core on Linux) - กำหนดการตั้งค่าสภาพแวดล้อม
เลือก ปรับใช้
ตัวช่วยสร้างจะสร้าง จัดแพคเกจ และปรับใช้แอปพลิเคชันของคุณไปยัง AWS
ตัวเลือก B: สร้างและปรับใช้กับ AWS Elastic Beanstalk โดยใช้ CLI
ใช้ Elastic Beanstalk CLI เพื่อจัดแพคเกจและปรับใช้เอเจนต์ .NET ไปยังสภาพแวดล้อม Amazon Linux 2 แบบ 64 บิต ตรวจสอบให้แน่ใจว่าได้กําหนดค่า AWS CLI และ EB CLI แล้ว แอปเชื่อมโยงกับตัวแปรสภาพแวดล้อม PORT ที่กำหนดโดย Beanstalk
สร้างและเผยแพร่แอปพลิเคชัน .NET ของคุณ:
# Publish for Linux runtime (AWS Elastic Beanstalk uses Amazon Linux) dotnet publish -c Release -o ./publish --runtime linux-x64สร้าง Procfile ด้วยเนื้อหาต่อไปนี้.
web: dotnet ./SemanticKernelSampleAgent.dllเริ่มต้น Elastic Beanstalk สำหรับ .NET ระบบจะแจ้งให้คุณเลือกภูมิภาคและแพลตฟอร์ม:
eb initเลือก:
-
แพลตฟอร์ม:
64bit-amazon-linux-2023-v3.7.0-running-.net-8 -
ภูมิภาค: ภูมิภาค AWS ที่คุณต้องการ (ตัวอย่างเช่น:
us-east-1)
-
แพลตฟอร์ม:
สร้างแพคเกจการปรับใช้งานและปรับใช้:
cd publish zip -r ../deploy.zip . cd .. eb create aws-a365-agent-env eb deployคำสั่งนี้:
- สร้างแอปพลิเคชัน Elastic Beanstalk
- สร้างสภาพแวดล้อมที่มีโหลดบาลานเซอร์
- ปรับใช้แอปพลิเคชันของคุณ
- จัดเตรียมทรัพยากร AWS ที่จำเป็น
เมื่อเสร็จแล้ว ให้รับจุดเชื่อมต่อ Elastic Beanstalk ของคุณ:
eb statusจดบันทึกจุดเชื่อมต่อของคุณ ควรมีลักษณะดังนี้:
http://aws-a365-agent-env.us-east-1.elasticbeanstalk.comจุดเชื่อมต่อนี้คือ
messagingEndpointที่ใช้โดย Agent 365 Dev Tools CLI
หมายเหตุ
สําหรับสภาพแวดล้อมการทำงานจริง ให้กําหนดค่า HTTPS โดยเพิ่มใบรับรอง SSL/TLS ใน Elastic Beanstalk Bot Framework ต้องการ HTTPS สำหรับจุดเชื่อมต่อการทำงานจริง
กําหนดค่าสําหรับโฮสติ้งที่ไม่ใช่ Azure
สร้าง a365.config.json ด้วยตนเองในโฟลเดอร์โปรเจ็กต์ Elastic Beanstalk ของคุณ:
สำคัญ
สำหรับโฮสติ้งที่ไม่ใช่ Azure ให้กำหนดค่า messagingEndpoint เป็น URL ของ Elastic Beanstalk ของคุณโดยใช้พาธ /api/messages
ไฟล์ a365.config.json ควรมีลักษณะดังนี้:
{
"tenantId": "YOUR_TENANT_ID",
"environment": "prod",
"messagingEndpoint": "http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com/api/messages",
"agentIdentityDisplayName": "MyAwsAgent Identity",
"agentBlueprintDisplayName": "MyAwsAgent Blueprint",
"agentUserDisplayName": "MyAwsAgent User",
"agentUserPrincipalName": "myawsagent@testTenant.onmicrosoft.com",
"agentUserUsageLocation": "US",
"managerEmail": "myManager@testTenant.onmicrosoft.com",
"deploymentProjectPath": ".",
"agentDescription": "AWS-hosted Agent 365 Agent"
}
ตารางต่อไปนี้สรุปฟิลด์การกำหนดค่าที่สำคัญและวัตถุประสงค์
| ฟิลด์ | ความหมาย |
|---|---|
messagingEndpoint |
Elastic Beanstalk URL + /api/messages |
deploymentProjectPath |
โดยมีการประทับ .env |
สร้างเอเจนต์ Agent 365
หลังจากที่โค้ดเอเจนต์ของคุณทำงานกับจุดเชื่อมต่อ AWS แล้ว ให้ดำเนินขั้นตอนที่เหลือจาก เริ่มต้นใช้งานการพัฒนา Agent 365 เพื่อตั้งค่าเอเจนต์ Agent 365 ของคุณ
ตรวจสอบเอเจนต์แบบครบวงจร
ใช้การตรวจสอบเหล่านี้เพื่อยืนยันว่าเอเจนต์ที่โฮสต์บน AWS ของคุณสามารถเข้าถึงได้ รับกิจกรรมจาก Bot Framework และตอบสนองได้อย่างถูกต้องในพื้นที่ Agent 365 ต่างๆ
ตรวจสอบการเชื่อมต่อ Elastic Beanstalk
ส่งคำขอ GET ไปยังจุดเชื่อมต่อ Elastic Beanstalk ของคุณ
curl http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com/
คําขอควรส่งคืนข้อความนี้:
AWS Agent is running.
ตรวจสอบบันทึก Elastic Beanstalk สำหรับข้อความ Bot Framework ขาเข้า
ใช้ การบันทึกของ Elastic Beanstalk เพื่อยืนยันว่าเอเจนต์ของคุณได้รับกิจกรรม Bot Framework และตอบสนองได้อย่างถูกต้อง
eb logs
หรือสตรีมบันทึกในแบบเรียลไทม์:
eb logs --stream
หลังจากที่ข้อความถูกส่งถึงเอเจนต์ของคุณ คุณจะเห็น:
POST 200 /api/messages
Received activity: { ... }
ทดสอบเอเจนต์จากพื้นที่ Agent 365
ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมของคุณ คุณสามารถทดสอบเอเจนต์ของคุณจากแพลตฟอร์มต่างๆ ได้:
- สนามทดลองเอเจนต์
- Teams (หากเผยแพร่)
- เอเจนต์เชลล์
- พื้นที่ที่ติดต่อกับภายนอก
คุณสามารถส่งข้อความและตรวจสอบบันทึก Elastic Beanstalk ของคุณได้ เรียนรู้วิธีทดสอบเอเจนต์โดยใช้ Microsoft Agent 365 SDK และตรวจสอบฟังก์ชันการทำงานของเอเจนต์ของคุณด้วยเครื่องมือทดสอบสนามทดลองเอเจนต์
เวิร์กโฟลว์ของนักพัฒนา
เมื่อการตั้งค่าเสร็จสมบูรณ์ ให้ปฏิบัติตามเวิร์กโฟลว์นี้สำหรับการพัฒนาแบบวนซ้ำ:
พัฒนาและทดสอบภายในเครื่อง
ใช้ โหมดเฝ้าระวัง เพื่อการพัฒนาอย่างรวดเร็วด้วยการโหลดซ้ำอัตโนมัติ:
# Automatically rebuild and restart on file changes
dotnet watch run
แก้ไขโค้ด บันทึก และทดสอบภายในเครื่องก่อนปรับใช้งาน
สร้างและปรับใช้กับ AWS Elastic Beanstalk อีกครั้ง
เมื่อพร้อมที่จะปรับใช้การเปลี่ยนแปลงของคุณ:
# Clean previous builds (optional but recommended)
dotnet clean
# Publish optimized release build
dotnet publish -c Release -o ./publish --runtime linux-x64
# Create deployment package
cd publish
zip -r ../deploy.zip .
cd ..
# Deploy to AWS
eb deploy
ทดสอบและติดตาม
ทดสอบโดยใช้ส่วนติดต่อ Agent 365 และตรวจสอบบันทึก Elastic Beanstalk:
# Stream logs in real-time
eb logs --stream
คุณไม่จำเป็นต้องสร้างข้อมูลประจำตัว Blueprint จุดเชื่อมต่อของบอท หรือสิทธิ์ใหม่
กำลังแก้ไขปัญหา
ใช้ส่วนนี้เพื่อวินิจฉัยและแก้ไขปัญหาทั่วไปเมื่อปรับใช้และเรียกใช้เอเจนต์ Agent 365 บน AWS Elastic Beanstalk ครอบคลุมการเชื่อมต่อและการตรวจสอบสถานะ นอกจากนี้ยังจัดการกับการผูกข้อมูลพอร์ต ข้อผิดพลาดในการสร้าง และปัญหาการให้สิทธิการใช้งาน
เคล็ดลับ
คู่มือการแก้ไขปัญหา Agent 365 ประกอบด้วยคำแนะนำการแก้ไขปัญหาระดับสูง แนวทางปฏิบัติที่ดีที่สุด และลิงก์ไปยังเนื้อหาการแก้ไขปัญหาสำหรับแต่ละส่วนของวงจรการพัฒนา Agent 365
จุดเชื่อมต่อข้อความไม่ได้รับคำขอ
ตรวจสอบรายละเอียดต่อไปนี้:
- จุดเชื่อมต่อของคุณคือ:
http://<your-app>.elasticbeanstalk.com/api/messages - สภาพแวดล้อม Elastic Beanstalk ของคุณอยู่ในสถานะปกติ ใช้การตรวจสอบโดยใช้
eb health - กลุ่มความปลอดภัยของคุณอนุญาตให้มีปริมาณการใช้งาน HTTP หรือ HTTPS ขาเข้า
- ไม่มีกฎไฟร์วอลล์หรือข้อจำกัดของ VPC
ปัญหาความสมบูรณ์ของแอปพลิเคชัน
ตรวจสอบความสมบูรณ์ของสภาพแวดล้อม:
eb health --refresh
ดูบันทึกแบบละเอียด:
eb logs
ปัญหาการผูกข้อมูลพอร์ต
ตรวจสอบให้แน่ใจว่าแอปพลิเคชันของคุณรอรับพอร์ตที่ระบุโดยตัวแปรสภาพแวดล้อม PORT Elastic Beanstalk จะตั้งค่านี้โดยอัตโนมัติ
ปัญหาการสร้าง .NET หรือรันไทม์
ตรวจสอบข้อผิดพลาดในการสร้างโดยใช้คำสั่งเหล่านี้:
# Clean and rebuild
dotnet clean
dotnet build --verbosity detailed
ตรวจสอบเวอร์ชัน .NET:
dotnet --version
dotnet --list-sdks
ตรวจสอบปัญหาของแพคเกจ:
# List installed packages
dotnet list package
# Update packages
dotnet restore --force
การมอบหมายสิทธิ์การใช้งานล้มเหลว
กําหนดสิทธิการใช้งาน Microsoft 365 ที่ถูกต้องด้วยตนเอง หรือใช้บัญชีผู้ใช้ที่ไม่มีสิทธิการใช้งานหากระบบรองรับ