Amazon Web Services (AWS) में डिप्लॉय किया गया Agent 365 एजेंट बनाएँ

जानें कि AWS इलास्टिक बीनस्टॉक पर चलने वाले Agent 365 एजेंट को Agent 365 CLI का उपयोग करके कैसे बनाएं, होस्ट करें, पंजीकृत करें और प्रकाशित करें। Microsoft Entra और Graph एजेंट की पहचान, अनुमतियाँ और ब्लूप्रिंट प्रदान करते हैं, जबकि AWS इलास्टिक बीनस्टॉक रनटाइम प्रदान करता है।

यदि आप अपने एजेंट को उस कोड की ओर इंगित करना चाहते हैं जो AWS एंडपॉइंट के पीछे स्थित है, तो आपको केवल निम्न चरण की आवश्यकता है: non-Azure hosting के लिए कॉन्फ़िगर करें। फिर, "Agent 365 विकास प्रारंभ करें" अनुभाग के अन्य सभी चरणों का पालन करें।

लक्ष्य

जानें कि Agent 365 और Microsoft 365 को नियंत्रण प्रणाली के रूप में कैसे उपयोग करें और:

  • AWS Elastic Beanstalk पर एजेंट रनटाइम तैनात करें
  • गैर-Azure होस्टिंग के लिए a365.config.json को कॉन्फ़िगर करें
  • Entra ID में एजेंट ब्लूप्रिंट बनाएं
  • OAuth2 और विरासत योग्य अनुमतियाँ कॉन्फ़िगर करें
  • AWS को इंगित करने वाले Bot Framework संदेश एंडपॉइंट को पंजीकृत करें
  • एजेंट पहचान + एजेंट उपयोगकर्ता बनाएं
  • (वैकल्पिक) Microsoft 365 ऐप इंटरफेस पर प्रकाशित करें
  • एंड-टू-एंड सहभागिता का परीक्षण करें

आवश्यकताएँ

शुरू करने से पहले, सुनिश्चित करें कि निम्नलिखित Azure/Microsoft 365, AWS और स्थानीय पर्यावरण पूर्वापेक्षाएँ पूरी की गई हैं।

Azure / Microsoft 365 पूर्वापेक्षाएं

अपने Microsoft Entra टेनेंट एक्सेस की पुष्टि करें और पहचान, ब्लूप्रिंट बनाने, और अपने एजेंट को रजिस्टर करने के लिए ज़रूरी टूल्स इंस्टॉल करें।

Amazon Web Services (AWS) की आवश्यकताएँ

पक्का करें कि आपके Elastic Beanstalk एनवायरनमेंट को डिप्लॉय और मैनेज करने के लिए ये AWS सर्विसेज़ और टूल्स सेट अप हों।

स्थानीय विकास पर्यावरण पूर्वापेक्षाएँ

एजेंट को बनाने, चलाने और परिनियोजित करने के लिए स्थानीय रूप से निम्नलिखित टूल्स को स्थापित और कॉन्फ़िगर करें।

.NET एजेंट बनाएं और उपयोग करें

नीचे दिए गए निर्देश बताते हैं कि एक ऐसा बुनियादी एजेंट कैसे बनाएँ जो:

  • GET अनुरोध का जवाब देता है /
  • POST पर Bot Framework गतिविधियों को स्वीकार करता है /api/messages

प्रोजेक्ट निर्देशिका बनाएं

mkdir aws-a365-agent
cd aws-a365-agent

इनिशियलाइज़ करें .NET प्रोजेक्ट

आपके अनुभव को आसान बनाने के लिए, यह लेख पहले से तैयार किए गए नमूने का उपयोग करता है। एजेंट365 Samples repository को क्लोन करें और dotnet\semantic-kernel\sample-agent सैम्पल में जाएं।

सिमेंटिक कर्नेल सैंपल एजेंट - C#/.NET सैंपल में निम्नलिखित शामिल हैं:

dotnet\semantic-kernel\sample-agent पर जाएं और सत्यापित करें कि प्रोजेक्ट सफलतापूर्वक बिल्ड होता है:

dotnet restore
dotnet build

मॉडल कॉन्फ़िगर करें

चरण 2: LLM कॉन्फ़िगरेशन में दिए गए निर्देशों का पालन करें ताकि आप अपनी Open API कुंजी का उपयोग करके प्रोजेक्ट को कॉन्फ़िगर कर सकें।

स्थानीय रूप से परीक्षण करें (वैकल्पिक)

  1. AWS में तैनात करने से पहले, स्थानीय रूप से अपने एजेंट का परीक्षण करें:

    # Run the application
    dotnet run
    
  2. किसी अन्य टर्मिनल में एंडपॉइंट्स का परीक्षण करें:

    # Test agent endpoint locally
    curl http://localhost:3978
    
  3. स्थानीय सर्वर को रोकने के लिए Ctrl+C दबाएँ।

खरीदें और परिनियोजित करें

इस सैंपल ऐप्लिकेशन को बिल्ड और डिप्लॉय करने के लिए अपना पसंदीदा विकल्प चुनें:

विकल्प A: बनाएँ और Visual Studio से परिनियोजित करें

Visual Studio के लिए AWS Toolkit का उपयोग करके, गाइडेड विज़ार्ड के माध्यम से ऐप को Elastic Beanstalk पर प्रकाशित करें।

  1. Solution Explorer में, अपने प्रोजेक्ट पर राइट-क्लिक करें।

  2. Publish to AWS Elastic Beanstalk का चयन करें।

  3. Beanstalk Deployment Wizard का पालन करें:

    • अपनी AWS क्रेडेंशियल प्रोफ़ाइल चुनें।
    • रीजन (Region) चुनें (उदाहरण के लिए, us-east-1)।
    • प्लेटफ़ॉर्म (.NET Core on Linux) का चयन करें।
    • परिवेश की सेटिंग्स कॉन्फ़िगर करें।
  4. परिनियोजित करें का चयन करें.

विज़ार्ड आपके ऐप्लिकेशन को बिल्ड करेगा, पैकेज करेगा, और AWS पर डिप्लॉय करेगा।

विकल्प बी: CLI के साथ AWS Elastic Beanstalk में बनाएँ और परिनियोजित करें

64-बिट Amazon Linux 2 वातावरण में .NET एजेंट को पैकेज और परिनियोजित करने के लिए Elastic Beanstalk CLI का उपयोग करें। सुनिश्चित करें कि AWS CLI और EB CLI कॉन्फ़िगर किए गए हैं। ऐप, Beanstalk द्वारा सेट किए गए PORT एनवायरनमेंट वेरिएबल से जुड़ जाता है।

  1. अपना .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
    
  2. .NET के लिए इलास्टिक बीनस्टॉक को इनिशियलाइज़ करें। आपको क्षेत्र और प्लेटफ़ॉर्म चुनने के लिए कहा जाता है:

    eb init
    
  3. चुनें:

    • प्लेटफ़ॉर्म: 64bit-amazon-linux-2023-v3.7.0-running-.net-8
    • रीजन: आपकी पसंदीदा AWS रीजन (उदाहरण के लिए us-east-1)
  4. एक परिनियोजन पैकेज बनाएं और परिनियोजित करें:

    cd publish
    zip -r ../deploy.zip .
    cd ..
    eb create aws-a365-agent-env
    eb deploy
    

    यह कमांड:

    • Elastic Beanstalk एप्लिकेशन बनाता है।
    • लोड बैलेंसर के साथ एक वातावरण बनाता है।
    • एप्लिकेशन डिप्लॉय करता है।
    • आवश्यक AWS संसाधनों को प्रोविजन करता है।
  5. समाप्त होने पर, अपना इलास्टिक बीनस्टॉक एंडपॉइंट प्राप्त करें:

    eb status
    

    अपने एंडपॉइंट को नोट करें। यह कुछ इस तरह दिखना चाहिए:

    http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com
    

    यह एंडपॉइंट ही messagingEndpoint है जिसका इस्तेमाल Agent 365 Dev Tools CLI द्वारा किया जाता है।

नोट

प्रोडक्शन वातावरण के लिए, Elastic Beanstalk में SSL/TLS प्रमाणपत्र जोड़कर HTTPS कॉन्फ़िगर करें। Bot Framework को प्रोडक्शन एंडपॉइंट्स के लिए HTTPS की आवश्यकता होती है।

गैर-Azure होस्टिंग के लिए कॉन्फ़िगर करें

अपने Elastic Beanstalk प्रोजेक्ट फ़ोल्डर में a365.config.json मैन्युअल रूप से बनाएँ:

महत्त्वपूर्ण

गैर-Azure होस्टिंग के लिए, messagingEndpoint का मान अपने Elastic Beanstalk URL (जिसमें /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 आपका इलास्टिक बीनस्टॉक यूआरएल + /api/messages
deploymentProjectPath जहाँ स्टैम्पिंग .env होता है

Agent 365 एजेंट को बिल्ड करें

जब आपका एजेंट कोड AWS एंडपॉइंट पर चल जाए, तो Agent 365 डेवलपमेंट प्रारंभ करें के शेष चरणों का पालन करके अपना Agent 365 एजेंट स्थापित करें।

एजेंट का एंड-टू-एंड सत्यापन करें

इन जाँचों का उपयोग करें ताकि आप पुष्टि कर सकें कि आपका AWS-होस्टेड एजेंट पहुँच योग्य है, Bot Framework गतिविधियाँ प्राप्त करता है और Agent 365 प्लेटफार्मों पर सही ढंग से प्रतिक्रिया देता है।

इलास्टिक बीनस्टॉक कनेक्टिविटी सत्यापित करें

अपने इलास्टिक बीनस्टॉक एंडपॉइंट पर एक GET अनुरोध भेजें।

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 (यदि प्रकाशित हो)
  • एजेंट शेल
  • फ़ेडरेटेड सतहें

आप संदेश भेज सकते हैं और अपने इलास्टिक बीनस्टॉक लॉग को सत्यापित कर सकते हैं। Microsoft Agent 365 SDK का उपयोग करके एजेंट्स का परीक्षण करना और एजेंट Playground परीक्षण उपकरण के साथ अपने एजेंट की कार्यक्षमता को सत्यापित करना सीखें।

डेवलपर कार्यप्रवाह

एक बार सेटअप पूरा हो जाने पर, पुनरावृत्त विकास के लिए इस कार्यप्रवाह का पालन करें:

स्थानीय रूप से विकास और परीक्षण करें

तेज़ विकास और स्वचालित रीलोडिंग के लिए watch mode का उपयोग करें:

# Automatically rebuild and restart on file changes
dotnet watch run

कोड में परिवर्तन करें, सहेजें और परिनियोजन से पहले स्थानीय रूप से परीक्षण करें।

अपने एप्लिकेशन को बनाएँ और AWS इलास्टिक बीनस्टॉक पर पुनः परिनियोजित करें

जब आप अपने परिवर्तनों को परिनियोजित करने के लिए तैयार हों:

# 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 surfaces का उपयोग करके परीक्षण करें और Elastic Beanstalk लॉग की निगरानी करें:

# Stream logs in real-time
eb logs --stream

आपको अपनी पहचान, ब्लूप्रिंट, बॉट एंडपॉइंट या अनुमतियों को फिर से बनाने की आवश्यकता नहीं है।

समस्‍या निवारण

इस अनुभाग का उपयोग AWS Elastic Beanstalk पर Agent 365 एजेंट को तैनात और संचालित करते समय सामान्य समस्याओं का निदान और समाधान करने के लिए करें। इसमें कनेक्टिविटी और स्वास्थ्य जांच शामिल है। यह पोर्ट बाइंडिंग, बिल्ड त्रुटियों और लाइसेंसिंग समस्याओं को भी संबोधित करता है।

टिप

Agent 365 समस्या निवारण मार्गदर्शिका में उच्च-स्तरीय समस्या निवारण अनुशंसाएँ, सर्वोत्तम प्रथाएँ, और Agent 365 विकास जीवनचक्र के प्रत्येक भाग के लिए समस्या निवारण सामग्री के लिंक शामिल हैं.

मैसेजिंग एंडपॉइंट को अनुरोध प्राप्त नहीं हो रहे हैं

निम्न जानकारी जाँच करें:

  • आपका एंडपॉइंट बिल्कुल यही है:
    http://<your-app>.elasticbeanstalk.com/api/messages
  • आपका इलास्टिक बीनस्टॉक वातावरण स्वस्थ है। चेक करने के लिए eb health का उपयोग करें।
  • आपका सुरक्षा समूह इनबाउंड HTTP या HTTPS ट्रैफ़िक की अनुमति देता है।
  • कोई फ़ायरवॉल नियम या वीपीसी प्रतिबंध नहीं हैं।

ऐप्लिकेशन की स्वास्थ्य समस्याएं

पर्यावरण स्वास्थ्य की जाँच करें:

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 लाइसेंस असाइन करें, या यदि समर्थित हो तो बिना लाइसेंस वाले उपयोगकर्ता पथ का उपयोग करें।