gpt4 book ai didi

aws-lambda - 使用 AWS lambda 函数调用 lex 聊天机器人

转载 作者:行者123 更新时间:2023-12-05 03:03:48 26 4
gpt4 key购买 nike

我正在尝试在 AWS lambda 函数中使用 boto3,以便向 Lex 聊天机器人发送 post_text。

Python代码:

    client = boto3.client('lex-runtime')
data = "string input"
response = client.post_text(
botName='xxx',
botAlias='yyy',
userId='id',
inputText= data)

但我得到:

An error occurred (AccessDeniedException) when calling the PostText 
operation: User: arn:aws:sts::111111111:assumed-
role/functionName/functionName is not authorized to perform: lex:PostText on
resource: arn:aws:lex:us-east-1:111111111:bot:xxx:yyyy"

所以我设置了 IAM 规则和策略:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lex:PostText"
],
"Resource": [
"arn:aws:lex:us-east-1:111111111:bot:xxx:yyyy"
]
}
]
}

信任关系:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}

但它仍然不起作用,我得到了同样的错误。

最佳答案

我最近遇到了同样的问题。

这肯定与分配给您在运行 Lambda 函数时使用的 IAM 角色的权限有关。

解决此问题的最简单方法如下:-

  1. 在 AWS 控制台上打开 Lambda 函数。
  2. 向下滚动到“执行角色”部分。
  3. 单击角色下方的链接以在新窗口中查看角色。它应该看起来像这样:“查看角色”。
  4. 在权限选项卡下的新窗口中,单击“附加政策”。
  5. 这会将您带到一个新屏幕。在此屏幕上筛选列出的通过在输入字段中输入“lex”来制定策略。
  6. 过滤后的列表将包含一个策略调用“AmazonLexRunBotsOnly”。
  7. 将此政策附加到您的角色。
  8. 保存更改并返回到您的 lambda 函数。
  9. 保存 lambda 函数并重新测试。

这将解决您的问题。

关于aws-lambda - 使用 AWS lambda 函数调用 lex 聊天机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com