使用 boto3 从 aws lambda 调用 amazon lex 时出错
Error while calling amazon lex from aws lambda using boto3
我在同一区域发布了一个 Lex 机器人和一个 Lambda 函数。我正在尝试使用以下代码与 Lambda 中的 Lex 进行交互。
import boto3
client = boto3.client('lex-runtime')
def lambda_handler(event, context):
response = client.post_text(
botName='string',
botAlias='string',
userId='string',
# sessionAttributes={
# 'string': 'string'
# },
# requestAttributes={
# 'string': 'string'
# },
inputText='entity list'
)
return response
在测试代码时,我的 lambda 函数超时。如果您需要了解任何其他信息,请告诉我。
错误信息:
"errorMessage": "2021-04-30T07:09:45.715Z <req_id> Task timed out after 183.10 seconds"
VPC 中的 Lambda,包括默认 VPC,无法访问互联网。由于您的 lambda 在默认 VPC 中,它将无法连接到任何 lex-runtime
AWS 端点,从而导致超时。
自 lex does not support VPC endpoints 以来,您的 lambda 访问 lex-runtime
的唯一方法是:
解除您的函数与 VPC 的关联。如果您这样做,您的函数将能够连接到互联网,随后连接到 lex-runtime
.
创建 private subnet in a default VPC, and setup a NAT gateway。然后将您的函数放在新子网中。这样您的函数就可以使用 NAT 连接到互联网。
更多信息在:
我在同一区域发布了一个 Lex 机器人和一个 Lambda 函数。我正在尝试使用以下代码与 Lambda 中的 Lex 进行交互。
import boto3
client = boto3.client('lex-runtime')
def lambda_handler(event, context):
response = client.post_text(
botName='string',
botAlias='string',
userId='string',
# sessionAttributes={
# 'string': 'string'
# },
# requestAttributes={
# 'string': 'string'
# },
inputText='entity list'
)
return response
在测试代码时,我的 lambda 函数超时。如果您需要了解任何其他信息,请告诉我。
错误信息:
"errorMessage": "2021-04-30T07:09:45.715Z <req_id> Task timed out after 183.10 seconds"
VPC 中的 Lambda,包括默认 VPC,无法访问互联网。由于您的 lambda 在默认 VPC 中,它将无法连接到任何 lex-runtime
AWS 端点,从而导致超时。
自 lex does not support VPC endpoints 以来,您的 lambda 访问 lex-runtime
的唯一方法是:
解除您的函数与 VPC 的关联。如果您这样做,您的函数将能够连接到互联网,随后连接到
lex-runtime
.创建 private subnet in a default VPC, and setup a NAT gateway。然后将您的函数放在新子网中。这样您的函数就可以使用 NAT 连接到互联网。
更多信息在: