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.jsonfor non-Azure ホスティング - Entra IDでエージェントブループリントを作成する
- Configure OAuth2 + inheritable permissions
- AWSを指すボットフレームワークのメッセージングエンドポイントを登録してください
- エージェント識別子 + エージェントユーザーを作成する
- (任意)Microsoft 365 アプリ表面への公開
- エンドツーエンドのテスト相互作用
[前提条件]
始める前に、以下のAzure / Microsoft 365、AWS、ローカル環境の前提条件を満たしていることを確認してください。
Azure / Microsoft 365 prerequisites
Microsoft Entraのテナントアクセスを確認し、以下のツールをインストールしてアイデンティティ、設計図を作成し、エージェントを登録してください。
以下のようなMicrosoft Entraテナント:
- アプリケーションおよびエージェントブループリントの作成権限/役割(グローバル管理者または同等のもの)
- Microsoft Agent 365の早期アクセスを得るには 、Frontierプレビュープログラム に参加する必要があります。
- エージェントユーザー向けに少なくとも1つのMicrosoft 365ライセンスが利用可能です
Amazon Web Services(AWS)の前提条件
以下のAWSサービスやツールがElastic Beanstalk環境の展開と管理に適切に設定されていることを確認してください。
地域開発環境の前提条件
以下のツールをローカルでインストール・設定し、エージェントの構築、実行、デプロイを行います。
コードエディター: Visual Studio Code または Visual Studio が推奨されます
.NET SDK: .NET 8.0 SDK 以降
AWS Toolkit :Visual Studio またはVisual Studio Code からこの拡張機能をインストールし、AWSアイデンティティ&アクセス管理(IAM) 認証情報でサインインしてくださいLLM APIアクセス:エージェントの設定や希望するモデルプロバイダーに基づいて適切なサービスを選択してください:
- OpenAI API キー: OpenAI API キーを取得します
- Azure OpenAI: Azure OpenAI リソースを作成して展開 し、API キーとエンドポイントを取得します
.NETエージェントを作成してデプロイする
以下の指示は、以下を満たす最小エージェントの作成方法を説明します:
- GETへの応答
/ - POST上でボットフレームワークの活動を受け入れる
/api/messages
プロジェクトディレクトリを作成する
mkdir aws-a365-agent
cd aws-a365-agent
.NETプロジェクトの初期化
体験を効率化するために、すでに用意されたサンプルを使用しています。 Agent365サンプルリポジトリをクローンし、dotnet\semantic-kernel\sample-agentのサンプルに移動します。
セマンティックカーネルサンプルエージェント - C#/.NET サンプルには以下が含まれます:
- 最小限の ASP.NET コアWeb API
- Bot Frameworkメッセージハンドラ at
/api/messages -
ヘルスチェックエンドポイント は
/ - AI機能のためのセマンティックカーネル統合
dotnet\semantic-kernel\sample-agentにアクセスして、プロジェクトが成功裏に構築されているか確認しましょう:
dotnet restore
dotnet build
モデルの設定
Step 2の指示に従って、Open APIキーを使ってプロジェクトを構成してください。
ローカルでのテスト(任意)
AWSにデプロイする前に、ローカルでエージェントをテストしてください:
# Run the application dotnet run別の端末でエンドポイントをテストします:
# Test agent endpoint locally curl http://localhost:3978ローカルサーバーを停止するには
Ctrl+Cを押してください。
ビルドとデプロイ
このサンプルアプリケーションをビルド・デプロイする際に、お好みのオプションを選択してください:
オプションA:Visual Studioからビルド・デプロイ
AWS Toolkit for Visual Studioを使って、ガイド付きウィザード付きのアプリをElastic Beanstalkに公開してください。
ソリューションエクスプローラーで、プロジェクトを右クリックします
Publish to AWS Elastic Beanstalkを選択します
Beanstalkデプロイメントウィザードをフォローしてください:
- AWSの認証情報プロファイルを選択してください
- 地域選択(例:
us-east-1) - セレクトプラットフォーム(
.NET Core on Linux) - 環境設定の設定
選択 展開
ウィザードはアプリケーションをAWSにビルド、パッケージ化、デプロイします。
オプションB:CLIを使ってAWS Elastic Beanstalkにビルド・デプロイ
Elastic Beanstalk CLIを使って.NETエージェントを64ビットのAmazon Linux 2環境にパッケージ化・デプロイします。AWS CLI/EB CLIが設定され、アプリがBeanstalkが設定した PORT 環境変数にバインドされていることを確認してください。
.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.NET用にElastic Beanstalkを初期化します。 地域とプラットフォームを選択するよう促されます:
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これは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) -
needDeploymentをfalseに設定する
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ライセンスを手動で割り当てるか、サポートされている場合は非ライセンスユーザーパスを使用してください。
ヘルプを受ける
- このトラブルシューティングセクションで扱っていないAgent 365 CLIの問題が発生した場合は、 GitHubで未解決の問題を確認するか、新しい問題を作成してください。
さらに多くのヘルプオプションがあります
助けを得るために以下の点を考慮してください。
サンプルコードとドキュメントのレビュー
関連するSDKリポジトリで他のGitHub課題をレビューまたは提出してください: