无法使用启用的 VPC 从第一个调用第二个 Lambda
Unable to invoke second Lambda from first with enabled VPC
我正在尝试从另一个调用 AWS Lambda 函数。但是在使用 Lambda 添加 VPC 后,我收到此错误:
send request failed caused by: Post "https://lambda.ap-southeast-1.amazonaws.com/2015-03-31/functions/seconda_lambda/invocations"
函数如下:
_invoke_copier_lambda(map[string]string{
"parameter1" : "param_val",
})
func _invoke_copier_lambda(params map[string]string) error {
// Marshal the map into a JSON string.
bytes__data, err := json.Marshal(params)
if err != nil {
return err
}
jsonStr := string(bytes__data)
svci := sLambda.New(session.New())
input := &sLambda.InvokeInput{
FunctionName: aws.String(config.CopierLambdaName),
Payload: []byte(jsonStr),
}
_, err = svci.Invoke(input)
return err
}
我错过了什么?
AWS Lambda 的 API 端点位于 Internet 上。因此,调用 Lambda 函数需要访问 Internet。
您的 Lambda 函数似乎位于 public 子网中。这意味着他们无法 访问互联网。为了能够与 Internet 通信,AWS Lambda 函数必须:
- 配置为不使用VPC,或
- 配置为连接到 VPC 中的 私有子网,并且 VPC 在 public 子网中有 NAT 网关或 NAT 实例。此外,私有子网的路由 Table 指向 NAT Gateway/NAT 实例。
Lambda 目的地
实际上,有一种使用 Lambda Destinations 功能让一个 Lambda 函数触发另一个 Lambda 函数的替代方法。当第一个 Lambda 函数完成时,它可以触发另一个 Lambda 函数作为目标。这 不需要 访问互联网,因为它由 AWS Lambda 服务本身处理(而不是调用 API)。请注意,Destinations 仅在第一个函数被触发时可用 asynchronously.
参见:
我正在尝试从另一个调用 AWS Lambda 函数。但是在使用 Lambda 添加 VPC 后,我收到此错误:
send request failed caused by: Post "https://lambda.ap-southeast-1.amazonaws.com/2015-03-31/functions/seconda_lambda/invocations"
函数如下:
_invoke_copier_lambda(map[string]string{
"parameter1" : "param_val",
})
func _invoke_copier_lambda(params map[string]string) error {
// Marshal the map into a JSON string.
bytes__data, err := json.Marshal(params)
if err != nil {
return err
}
jsonStr := string(bytes__data)
svci := sLambda.New(session.New())
input := &sLambda.InvokeInput{
FunctionName: aws.String(config.CopierLambdaName),
Payload: []byte(jsonStr),
}
_, err = svci.Invoke(input)
return err
}
我错过了什么?
AWS Lambda 的 API 端点位于 Internet 上。因此,调用 Lambda 函数需要访问 Internet。
您的 Lambda 函数似乎位于 public 子网中。这意味着他们无法 访问互联网。为了能够与 Internet 通信,AWS Lambda 函数必须:
- 配置为不使用VPC,或
- 配置为连接到 VPC 中的 私有子网,并且 VPC 在 public 子网中有 NAT 网关或 NAT 实例。此外,私有子网的路由 Table 指向 NAT Gateway/NAT 实例。
Lambda 目的地
实际上,有一种使用 Lambda Destinations 功能让一个 Lambda 函数触发另一个 Lambda 函数的替代方法。当第一个 Lambda 函数完成时,它可以触发另一个 Lambda 函数作为目标。这 不需要 访问互联网,因为它由 AWS Lambda 服务本身处理(而不是调用 API)。请注意,Destinations 仅在第一个函数被触发时可用 asynchronously.
参见: