我已经使用 Vault UI 创建了密钥/秘密对。
如何通过 Terraform 从 Vault 获取秘密?
我正在尝试通过 terraform 创建一个 AWS 参数存储,它也可以使用 JSON 格式传递默认值。这是代码示例。
resource "aws_ssm_parameter" "secret" {
name = "/something/env"
description = "This is a something values"
type = "SecureString"
value = "test"
tags = {
environment = "production"
}
}
Run Code Online (Sandbox Code Playgroud)
我如何将 json one 传递到值一内,而不是将单个值作为值的“测试”传递。
这样AWS参数存储值就会像
{
"key": "value"
}
Run Code Online (Sandbox Code Playgroud) 我有 4 个 env,qa 和 dev 使用一个 ID,uat 和 prod 使用另一个 ID。我正在尝试执行 if else,基本上,如果 env 是 dev 或 qa,则使用 id1,否则使用 id2。这是我尝试过的:
\nlocals{\n endpoint_id = "${var.env == "dev" || "qa" ? "id1" : "id2"}"\n}\nRun Code Online (Sandbox Code Playgroud)\n这就是我得到的:
\nError: Invalid operand\n\xe2\x94\x82 \n\xe2\x94\x82 on ssm-parameters.tf line 2, in locals:\n\xe2\x94\x82 2: endpoint_id = "${var.env == "dev" || "qa" ? "id1" : "id2"}"\n\xe2\x94\x82 \n\xe2\x94\x82 Unsuitable value for right operand: a bool is required.\nRun Code Online (Sandbox Code Playgroud)\n显然我不能在这里做“或”。我该怎么办呢?谢谢。
\n当我尝试使用 terraform 创建子网时,不断收到以下错误。使用 aws 控制台创建子网没有问题。有人可以帮助我吗?
\n Error: error creating subnet: InvalidSubnet.Range: The CIDR '10.2.0.128/26' is invalid. \xe2\x94\x82 status code: 400
Error: error creating subnet: InvalidSubnet.Range: The CIDR '10.2.0.64/26' is invalid. \xe2\x94\x82 status code: 400
Error: error creating subnet: InvalidSubnet.Range: The CIDR '10.2.0.0/26' is invalid. \xe2\x94\x82 status code: 400
我对 VPC 和子网使用以下 CIDR 范围
\nvariable "cidr_block" {\ndefault = "10.1.0.0/21"\ndescription = "VPC CIDR Block"\ntype = string\n}\n\nvariable "public_subnet_cidr_blocks" {\ndefault = ["10.1.0.0/26","10.2.0.0/26","10.1.0.64/26","10.2.0.64/26","10.1.0.128/26","10.2.0.128/26"]\ntype = list\ndescription = "List of public subnet CIDR …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-vpc terraform terraform-provider-aws
我正在尝试使用 terraform 部署 lambda 函数,代码是用 python 编写的。这是执行该操作的 terraform 代码。
data archive_file UpdateSeqNumInLedgerSummary {
count = (var.environment_id == var.prd_environment) ? 1 : 0
..
..
..
#
}
resource aws_lambda_function update_seqnum_in_indexedledgersummary {
count = (var.environment_id == var.prd_environment) ? 1 : 0
..
..
..
#
}
Run Code Online (Sandbox Code Playgroud)
在部署期间,我还尝试使用aws_lambda_inspiration调用 lambda 函数。这就是我正在做的
data aws_lambda_invocation update_seqnum_invocation {
count = (var.environment_id == var.prd_environment) ? 1 : 0
function_name = aws_lambda_function.update_seqnum_in_indexedledgersummary[count.index].function_name
input = <<JSON
{}
JSON
}
Run Code Online (Sandbox Code Playgroud)
但在部署期间我收到以下错误
Error: Invalid index
on seqnum-update.tf line 124, …Run Code Online (Sandbox Code Playgroud) 我已经使用 Terraform 在 Azure 应用服务上部署了一个 NodeJS 应用程序。
现在我想输出此应用程序服务的 URL。但我在数据源中找不到这个属性。我该怎么做?例如:
output "url" {
value = azurerm_app_service.example.url
}
Run Code Online (Sandbox Code Playgroud)
这是更新后的main.tf文件:
terraform {
required_version = ">= 1.1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 2.91"
}
}
}
provider "azurerm" {
features {}
}
variable "location" {
type = string
default = "brazilsouth"
}
resource "azurerm_resource_group" "resource_group_demo" {
name = "terraform-webapp-demo"
location = var.location
}
resource "azurerm_app_service_plan" "service_plan_demo" {
name = "webapp-demo"
location = azurerm_resource_group.resource_group_demo.location
resource_group_name = azurerm_resource_group.resource_group_demo.name …Run Code Online (Sandbox Code Playgroud) 我有一个映射到局部变量的元组
locals {
my_val = [
{
region = "us-east-1"
value = 1000
data = 3000
},
{
region = "us-east-1"
value = 1001
data = 4000
},
{
region = "us-east2"
value = 1002
data = 5000
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要根据该对的值删除重复项,在这里我想放置区域条件us-east-1,输出应该是
{
my_val = [
{
region = "us-east-1"
value = 1000
data = 3000
},
{
region = "us-east2"
value = 1002
data = 5000
}
]
}
Run Code Online (Sandbox Code Playgroud)
需要帮助在地图对象的值上应用不同值。
我正在尝试在 AWS Elasticache 中创建自定义参数组。
我想使用默认参数组作为基础(名为 default.redis5.0.cluster.on 的组,因为这里有我需要的其他所有内容,但只有一个我想更改的属性),请参阅https:// docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/ParameterGroups.Redis.html有关默认参数组的更多详细信息
我的基本假设是,我需要将默认参数组值复制到 Terraform 资源,然后只修改我需要更改的唯一参数。然而,这会产生大量参数,而且似乎不是最简单的方法。
如果我需要在default.redis5.0.cluster.on参数组中复制参数,那么我需要将这些参数放在 Terraform 中。有没有办法将默认资源组导入为 Terraform 配置?
amazon-web-services amazon-elasticache terraform terraform-provider-aws
我的代码中有以下变量:
variable "mylist" {
default = ["cardigan.com", "crazy-apple.com", "blue-pen.com"]
}
Run Code Online (Sandbox Code Playgroud)
在创建给定资源时,我必须根据子字符串传递此列表中元素的名称。例如,如何检索此列表中包含子字符串“apple”的元素?
我已经能够部署几个月了,现在今天早上我突然收到此错误。
\n\xe2\x94\x82 Error: Error while updating cloudfunction configuration: Error waiting for Updating CloudFunctions Function: Error code 3, message: Build failed: curl: (22) The requested URL returned error: 404 \n\xe2\x94\x82 \n\xe2\x94\x82 gzip: stdin: unexpected end of file\n\xe2\x94\x82 tar: Child returned status 1\n\xe2\x94\x82 tar: Error is not recoverable: exiting now; Error ID: 637fe2a4\n\xe2\x94\x82 \n\xe2\x94\x82 with google_cloudfunctions_function.syncFiles,\n\xe2\x94\x82 on functions.tf line 396, in resource "google_cloudfunctions_function" "syncFiles":\n\xe2\x94\x82 396: resource "google_cloudfunctions_function" "syncFiles" {\n\xe2\x94\x82 \nRun Code Online (Sandbox Code Playgroud)\n这是地形配置。我们压缩该目录并将其交给云函数进行部署
\ndata "archive_file" "source-zip" {\n type = "zip"\n source_dir …Run Code Online (Sandbox Code Playgroud) google-cloud-platform terraform google-cloud-functions terraform-provider-gcp