次の方法で共有


Amazon Web Services(AWS)に展開されたAgent 365エージェントを構築する

Important

Microsoft Agent 365 の早期アクセスを利用するには、フロンティア プレビュープログラムに参加する必要があります。 フロンティアは、Microsoft の最新の AI イノベーションと直接接続します。 Frontier のプレビューは、お客様の契約書に記載されている既存のプレビュー利用規約に従います。 これらの機能は現在開発中であるため、提供状況や機能は今後変更される可能性があります。

ここでは、Agent 365 CLIを使ってAWS Elastic Beanstalk上で動作するAgent 365エージェントの構築、ホスト、登録、公開方法を学べます。 Microsoft Entra & Graphはエージェントのアイデンティティ、権限、ブループリントを提供し、AWS Elastic Beanstalkはランタイムを提供します。

もしエージェントをAWSエンドポイントの背後にあるコードに向けたいだけなら、次のステップだけで十分です: 非Azureホスティングを設定し 、その後 Agent 365の開発ライフサイクルにある他のすべての手順を踏みます。

目標

Agent 365とMicrosoft 365を「コントロールプレーン」として使い方を学び、以下のことを学びましょう。

  • AWS Elastic Beanstalk でエージェントランタイムをデプロイ
  • Configure a365.config.json for non-Azure ホスティング
  • Entra IDでエージェントブループリントを作成する
  • Configure OAuth2 + inheritable permissions
  • AWSを指すボットフレームワークのメッセージングエンドポイントを登録してください
  • エージェント識別子 + エージェントユーザーを作成する
  • (任意)Microsoft 365 アプリ表面への公開
  • エンドツーエンドのテスト相互作用

[前提条件]

始める前に、以下のAzure / Microsoft 365、AWS、ローカル環境の前提条件を満たしていることを確認してください。

Azure / Microsoft 365 prerequisites

Microsoft Entraのテナントアクセスを確認し、以下のツールをインストールしてアイデンティティ、設計図を作成し、エージェントを登録してください。

Amazon Web Services(AWS)の前提条件

以下のAWSサービスやツールがElastic Beanstalk環境の展開と管理に適切に設定されていることを確認してください。

地域開発環境の前提条件

以下のツールをローカルでインストール・設定し、エージェントの構築、実行、デプロイを行います。

.NETエージェントを作成してデプロイする

以下の指示は、以下を満たす最小エージェントの作成方法を説明します:

  • GETへの応答 /
  • POST上でボットフレームワークの活動を受け入れる /api/messages

プロジェクトディレクトリを作成する

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

.NETプロジェクトの初期化

体験を効率化するために、すでに用意されたサンプルを使用しています。 Agent365サンプルリポジトリをクローンし、dotnet\semantic-kernel\sample-agentのサンプルに移動します。

セマンティックカーネルサンプルエージェント - C#/.NET サンプルには以下が含まれます:

dotnet\semantic-kernel\sample-agentにアクセスして、プロジェクトが成功裏に構築されているか確認しましょう:

dotnet restore
dotnet build

モデルの設定

Step 2の指示に従って、Open APIキーを使ってプロジェクトを構成してください。

ローカルでのテスト(任意)

  1. AWSにデプロイする前に、ローカルでエージェントをテストしてください:

    # Run the application
    dotnet run
    
  2. 別の端末でエンドポイントをテストします:

    # Test agent endpoint locally
    curl http://localhost:3978
    
  3. ローカルサーバーを停止するには Ctrl+C を押してください。

ビルドとデプロイ

このサンプルアプリケーションをビルド・デプロイする際に、お好みのオプションを選択してください:

オプションA:Visual Studioからビルド・デプロイ

AWS Toolkit for Visual Studioを使って、ガイド付きウィザード付きのアプリをElastic Beanstalkに公開してください。

  1. ソリューションエクスプローラーで、プロジェクトを右クリックします

  2. Publish to AWS Elastic Beanstalkを選択します

  3. Beanstalkデプロイメントウィザードをフォローしてください:

    • AWSの認証情報プロファイルを選択してください
    • 地域選択(例: us-east-1)
    • セレクトプラットフォーム(.NET Core on Linux)
    • 環境設定の設定
  4. 選択 展開

ウィザードはアプリケーションをAWSにビルド、パッケージ化、デプロイします。

オプションB:CLIを使ってAWS Elastic Beanstalkにビルド・デプロイ

Elastic Beanstalk CLIを使って.NETエージェントを64ビットのAmazon Linux 2環境にパッケージ化・デプロイします。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用にElastic Beanstalkを初期化します。 地域とプラットフォームを選択するよう促されます:

    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. 完成したら、Elastic Beanstalkのエンドポイントを手に入れてください:

    eb status
    

    エンドポイントを記録してください。 次のように表示されます。

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

    これはAgent 365 Dev Tools CLIで使われる messagingEndpoint です。

本番環境では、Elastic BeanstalkでSSL/TLS証明書を追加してHTTPSを設定しましょう。 ボットフレームワークは本番エンドポイントでHTTPSを必要としています。

Configure for non-Azure hosting

Elastic Beanstalkのプロジェクトフォルダ内で a365.config.json を作成してください。 a365 config initを実行します:

Important

非Azureホスティングの場合は、以下の条件を満たす必要があります:

  • messagingEndpointをElastic BeanstalkのURLに設定してください(パス/api/messages)
  • needDeploymentfalseに設定する

a365.config.jsonファイルはこんな感じになるはずです:

{
  "tenantId": "YOUR_TENANT_ID",
  "subscriptionId": "YOUR_AZURE_SUBSCRIPTION_ID",
  "resourceGroup": "a365-aws-demo",
  "location": "westus",
  "environment": "prod",

  "messagingEndpoint": "http://aws-a365-agent-env.us-east-1.elasticbeanstalk.com/api/messages",
  "needDeployment": false,

  "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"
}

以下の表は重要な構成フィールドとその目的をまとめたものです。

フィールド Meaning
messagingEndpoint あなたのElastic Beanstalk URL + /api/messages
"needDeployment": false CLIに「自分でサーバーをホストしています。「Azureにデプロイしないでください」
deploymentProjectPath スタンプ .env 行われる場所

ビルドエージェント365エージェント

エージェントコードをAWSエンドポイント上で実行したら、 Agent 365開発ライフサイクル の残りのステップに従ってAgent 365エージェントをセットアップします。

エージェントをエンドツーエンドで検証してください

これらのチェックを使って、AWSホストのエージェントが連絡可能であること、Bot Frameworkのアクティビティを受け取っていること、Agent 365サーフェス間で正しく応答していることを確認しましょう。

Elastic Beanstalkの接続性を確認する

Elastic BeanstalkエンドポイントにGETリクエストを送信します。

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

リクエストは次のメッセージを返すはずです:

AWS Agent is running.

Elastic Beanstalkのログでボットフレームワークのメッセージが届いていないか確認してください

Elastic Beanstalkのログを使って、エージェントがBot Frameworkのアクティビティを受け取り、正しく応答しているかを検証してください。

eb logs

またはリアルタイムでログをストリーミングすることもできます:

eb logs --stream

メッセージがエージェントに届くと、以下が表示されます:

POST 200 /api/messages
Received activity: { ... }

エージェント365の表面からの試験剤

環境によります:

  • エージェント プレイグラウンド
  • Teams(公開された場合)
  • エージェント・シェル
  • 連邦面

これでメッセージを送信したり、Elastic Beanstalkのログを検証したりできます。 Microsoft Agent 365 SDKを使ってエージェントをテストする方法と、Agents Playgroundテストツールでエージェントの機能を検証する方法を学びましょう

開発者のワークフロー

セットアップが完了したら、反復開発のワークフローに従います:

現地で開発・テスト

自動リロード付きの急速な成長には ウォッチモード をご利用ください:

# 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

あなたのアイデンティティ、設計図、ボットエンドポイント、権限は再作成する必要はありません。

トラブルシューティング

このセクションを使って、AWS Elastic Beanstalk上で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ライセンスを手動で割り当てるか、サポートされている場合は非ライセンスユーザーパスを使用してください。

ヘルプを受ける

さらに多くのヘルプオプションがあります

助けを得るために以下の点を考慮してください。