我正在尝试通过 Aws ALB + Cognito 对 Lambda 进行身份验证。当我启动 DNS 服务器时,它会将我重定向到登录页面,我可以注册并验证用户。另外,我可以看到该用户已添加到用户池中的用户中。登录后,出现 500 Internal Server Error。我可以在日志中看到,转发到函数的默认操作是在后台执行的。
不知道为什么它在验证用户身份后不重定向/执行 lambda。您能否提供一些见解,我在这个设置中会缺少什么。
我已经在 terraform 中设置了 Lambda、ALB 和 Cognito。
resource "aws_cognito_user_pool" "pool" {
name = "alb-test-userpool"
alias_attributes = ["email", "preferred_username"]
verification_message_template {
default_email_option = "CONFIRM_WITH_CODE"
}
email_verification_subject = "Device Verification Code"
email_verification_message = "Please use the following code {####}"
sms_verification_message = "{####} Baz"
auto_verified_attributes = ["email"]
password_policy {
minimum_length = 8
require_lowercase = false
require_numbers = false
require_symbols = false
require_uppercase = false
}
tags {
"Name" …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-cognito aws-api-gateway aws-application-load-balancer
我正在为 AWS API 网关创建请求映射模板。在该模板中,我想根据某些条件自定义请求参数并应用运算符。
#foreach($header in $input.params().header.keySet())
#if($header=="id")#set($idVal =
$util.escapeJavaScript($input.params().header.get($header)))
#if($idVal.matches("^[0-9a-f]{4}-[0-9A-Z]{3}$"))
"$header":"$idVal"
#else
#set($random = UUID.randomUUID())
"$header":"$random"
#end
#else
Run Code Online (Sandbox Code Playgroud)
例如,在上面基于 if 条件的模板中,我想生成 randomUUID 并添加到标题中。但是当我测试时,id 值设置为空字符串。
如何在速度模板映射 api 网关中使用包和 java 函数支持?另外,请分享对格式良好的模板的任何参考,了解更多信息会非常有用。
templates vtl amazon-web-services aws-lambda aws-api-gateway
我正在 AWS API Gateway 中创建 API。AWS 中的所有基础设施都使用 terraform 进行管理 为了继续相同的操作,需要在 terraform 中添加 API 配置。我在应用程序中添加了由 swagger 依赖工具生成的 swagger 中的 API 资源定义。
我需要将它与 terraform 集成,但是当我尝试应用时,我必须多次从 swagger 创建的 AWS 中导入每个资源。只有 API Gateway 配置应该是 terraform 并且资源定义应该来自 swagger,有什么方法可以实现这一点。此外,我需要自动化 100 个 API 的流程,请建议如何完成。
请分享任何相关的github链接
这是我迄今为止尝试过的,
resource "aws_api_gateway_rest_api" "api" {
name = "Hello-API"
description = "Proxy to handle requests to our API"
body = "${file("api_swagger_example.json")}"
}
//Resource created by swagger
data "aws_api_gateway_resource" "helloApp" {
rest_api_id = "${aws_api_gateway_rest_api.api.id}"
path = "/api/v1/hello"
}
//Need to import from first, since …Run Code Online (Sandbox Code Playgroud) api ×1
aws-application-load-balancer ×1
aws-lambda ×1
swagger ×1
templates ×1
terraform ×1
vtl ×1