英文:
Terraform AWS API Gateway aws_api_gateway_model issue
问题
Here is the translation of the code snippet you provided:
我是 Terraform 的新手,尝试通过 Terraform 创建 API 网关。
这是我的代码:
resource "aws_api_gateway_rest_api" "demo_services_apig" {
name = "demo-services-apigateway-${var.environment}"
description = "Demo service APIs to handle Snow events and User Authentication"
api_key_source = "HEADER"
endpoint_configuration {
types = ["REGIONAL"]
}
}
resource "aws_api_gateway_model" "demo_services_apig_model" {
rest_api_id = aws_api_gateway_rest_api.demo_services_apig.id
name = "UserOauthAPIResponseModel"
description = "a JSON schema"
content_type = "application/json"
schema = jsonencode({
type = "${file("api_gateway/json_files/oauth_response.json")}"
})
}
这是位于 api_gateway/json_files/* 下的 schema JSON,在控制台配置时运行良好。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "UserOAuthUserConfig",
"type": "object",
"properties": {
"Role": {
"type": "string"
},
"Policy": {
"type": "string"
},
"HomeDirectory": {
"type": "string"
},
"PublicKeys": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
我在 Terraform 中遇到以下错误,不知道问题出在哪里:
│ 错误:创建 API Gateway 模型(UserOauthAPIResponseModel)时出错:BadRequestException:指定了无效的模型:验证结果:警告:[],错误:[指定了无效的模型模式]
│
│ 位于模块.api_gateway.aws_api_gateway_model.demo_services_apig_model,
│ 在 api_gateway/main.tf 的第 15 行,资源 "aws_api_gateway_model" "demo_services_apig_model":
│ 15: resource "aws_api_gateway_model" "demo_services_apig_model" {
I have provided the translated code snippet as requested. If you have any further questions or need assistance with the code, please feel free to ask.
英文:
I am new to terraform and trying to create API Gateway via terraform.
Here is my code
resource "aws_api_gateway_rest_api" "demo_services_apig" {
name = "demo-services-apigateway-${var.environment}"
description = "Demo service APIs to handle Snow events and User Authentication"
api_key_source = "HEADER"
endpoint_configuration {
types = ["REGIONAL"]
}
}
resource "aws_api_gateway_model" "demo_services_apig_model" {
rest_api_id = aws_api_gateway_rest_api.demo_services_apig.id
name = "UserOauthAPIResponseModel"
description = "a JSON schema"
content_type = "application/json"
schema = jsonencode({
type = "${file("api_gateway/json_files/oauth_response.json")}"
})
}
Here is schema JSON under api_gateway/json_files/* which works fine if I configure it from console.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "UserOAuthUserConfig",
"type": "object",
"properties": {
"Role": {
"type": "string"
},
"Policy": {
"type": "string"
},
"HomeDirectory": {
"type": "string"
},
"PublicKeys": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
I am getting below error in Terraform and not able to figure out what's wrong here.
│ Error: creating API Gateway Model (UserOauthAPIResponseModel): BadRequestException: Invalid model specified: Validation Result: warnings : [], errors : [Invalid model schema specified]
│
│ with module.api_gateway.aws_api_gateway_model.demo_services_apig_model,
│ on api_gateway/main.tf line 15, in resource "aws_api_gateway_model" "demo_services_apig_model":
│ 15: resource "aws_api_gateway_model" "demo_services_apig_model" {
答案1
得分: 0
以下是您要翻译的内容:
"Created model manually in console and use get-model CLI command to check format. use same format in terraform.
resource "aws_api_gateway_model" "demo_services_apig_model" {
rest_api_id = aws_api_gateway_rest_api.demo_services_apig.id
name = "UserOauthAPIResponseModel"
description = "a JSON schema"
content_type = "application/json"
schema = "{"$schema":"http://json-schema.org/draft-04/schema#","title":"UserUserConfig","type":"object","properties":{"Role":{"type":"string"},"Policy":{"type":"string"},"HomeDirectory":{"type":"string"},"PublicKeys":{"type":"array","items":{"type":"string"}}}}"
}"
英文:
Created model manually in console and use get-model CLI command to check format. use same format in terraform.
resource "aws_api_gateway_model" "demo_services_apig_model" {
rest_api_id = aws_api_gateway_rest_api.demo_services_apig.id
name = "UserOauthAPIResponseModel"
description = "a JSON schema"
content_type = "application/json"
schema = "{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"title\":\"UserUserConfig\",\"type\":\"object\",\"properties\":{\"Role\":{\"type\":\"string\"},\"Policy\":{\"type\":\"string\"},\"HomeDirectory\":{\"type\":\"string\"},\"PublicKeys\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}"
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论