我正试图在地球上扮演一个AWS角色。我遵循了这个例子,他们只附加了一个json策略:
resource "aws_iam_policy" "policy" {
name = "test_policy"
path = "/"
description = "My test policy"
# Terraform's "jsonencode" function converts a
# Terraform expression result to
在terraform的官方网站上,有这样一个例子():
resource "aws_iam_role_policy" "test_policy" {
name = "test_policy"
role = aws_iam_role.test_role.id
# Terraform's "jsonencode" function converts a
# Terraform expression result to valid JSON syntax.
policy = jsonencode({
我从GitHub工作流中调用了Terraform,其中一个步骤是RDS更新。状态的后端是一个S3桶。Terraform正确地反映了更新的状态(参见下面的日志),但是对RDS数据库实例的更改根本没有反映出来。
下面是地形应用操作的输出-
我还注意到状态文件没有更新回S3。有趣的是,如果我更改实例的名称,它会强制破坏和重新创建,terraform会按照预期完成它的工作。
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with
我想写一个将创建dynamoDb表的terraform模块。这些属性应该从.tfvars或默认变量中读取,而不是像资源指南中那样已经在.tf中命名
为了进一步解释,假设使用属性列表来实现此伪代码:
resource "aws_dynamodb_table" "basic-dynamodb-table" {
name = "GameScores"
... #Other required feilds
...
...
# attributes is a list of names
for(attribute_name:${length(var
所以..。我很难将其中一个构建转换为自定义。(我为什么要那样做?内部问题,无论我是否同意是无关紧要的,所以请不要对我的决定。*-)
现有BuiltIn策略:
问题出现在json文件的第40/43行中。
main.tf文件包括:
# policy
locals {
json_keyvault_certmaxvalidityperiod = jsondecode(file("${path.module}/resourceprovider/KeyVault/Certificates should have the specified maximum validity period.js