如何在C#中使用AWSSDKCore.dll和AWSSDKLex.dll在服务器下获取有关所有LexChatBots的信息

时间:2018-06-26 15:51:12

标签: c# amazon-web-services amazon-lex aws-lex

最近,当在C#中使用Lex时,我引用了AWSCore.dll和AWSLex.dll,并且仍在尝试获取一种方法,该方法公开了我在Aamazon服务器中创建的所有可用Lexchatbot。

  var amazonPostRequest = new Amazon.Lex.Model.PostContentRequest();

  var amazonPostResponse = new Amazon.Lex.Model.PostContentResponse();

使用这两种方法来获取所有其他信息。请求机器人名称和别名的方法是用于设置的,没有方法来响应以获取服务器中可用的Lexchatbot。

2 个答案:

答案 0 :(得分:0)

我不认为Lex SDK直接支持此调用。

使用AWS Lex REST API来获取机器人列表:

GET https://<your aws region endpoint>/bots/

https://docs.aws.amazon.com/lex/latest/dg/API_GetBots.html

答案 1 :(得分:0)

经过长时间的研究,我找到了解决问题的答案,这可能会帮助他人。

首先,我们需要通过Nuget添加AWSSDK.LexModelBuildingService。这将添加对DLL的引用。

所有已经公开的方法。我们需要同时创建GetBotsRequest和GetBotsResponse方法。

var botRequest = new Amazon.LexModelBuildingService.Model.GetBotsRequest();
var botResponse = new Amazon.LexModelBuildingService.Model.GetBotsResponse();

然后我们需要致电lex模型构建服务客户端

var amazonmodel = new AmazonLexModelBuildingServiceClient("YourAccesKeyId","YourSecretAccessKey",Amazon.RegionEndpoint.USEast1);

之后,我们可以获得GetBots()的内置方法的响应

botResponse = amazonmodel.GetBots(botRequest);

我们将获得机器人元数据列表

List<Amazon.LexModelBuildingService.Model.BotMetadata> bots = botResponse.Bots;

有关所创建的每个机器人的每个详细信息,将在机器人列表列表中提供 几乎所有方法都可以从LexModelBuildingService dll中的Lex配置中获取详细信息

注意:

  1. 在AWS的IAM(身份访问管理)中,我们需要在“策略”部分中授予访问权限以具有Lex组件。 AWSLexFullAccess 要么 atleast arn:aws:lex:region:account-id:bot:*政策中的访问权限