Amazon dynamodb terraform与DynamoDB后端:创建新工作区时有400个错误请求
我有terraform stack,它在DynamoDB中保持锁:Amazon dynamodb terraform与DynamoDB后端:创建新工作区时有400个错误请求,amazon-dynamodb,terraform,terraform-provider-aws,Amazon Dynamodb,Terraform,Terraform Provider Aws,我有terraform stack,它在DynamoDB中保持锁: terraform { backend "s3" { bucket = "bucketname" key = "my_key" encrypt = "true" role_arn = "arn:aws:iam::11111111:role/my_role" dynamodb_t
terraform {
backend "s3" {
bucket = "bucketname"
key = "my_key"
encrypt = "true"
role_arn = "arn:aws:iam::11111111:role/my_role"
dynamodb_table = "tf-remote-state-lock"
}
}
当我运行terraform workspace new test
时,它会失败,并出现(相当误导性的)错误:
如果我打开TF_LOG=DEBUG
,我会看到400错误请求
(更多详细信息)
我做错了什么以及如何修复它?可能您没有创建AWS资源。下面是关于s3存储桶的说明: 这假设我们创建了一个名为mybucket的bucket 我认为第二条消息来自DynamoDb表,它没有创建或配置正确。文档中介绍了使用DynamoDb实现锁定和一致性的以下内容: dynamodb_表-(可选)用于状态的dynamodb表的名称 锁定和一致性。该表必须具有名为的主键 具有字符串类型的LockID。如果未配置,则将禁用状态锁定 残疾人
可能您没有创建AWS资源。下面是关于s3存储桶的说明: 这假设我们创建了一个名为mybucket的bucket 我认为第二条消息来自DynamoDb表,它没有创建或配置正确。文档中介绍了使用DynamoDb实现锁定和一致性的以下内容: dynamodb_表-(可选)用于状态的dynamodb表的名称 锁定和一致性。该表必须具有名为的主键 具有字符串类型的LockID。如果未配置,则将禁用状态锁定 残疾人
解决方案:
terraform工作区
应仅在terraform init
之后运行。如果您设置了TF_工作区
,则在TF init
期间可能会出现错误,表示工作区还不存在,因此您可能会在TF init
之前尝试使用TF ws new
。不要这样做,只需在TF init
之后设置TF_工作区
解决方案:terraform WORKSPACE无论什么
都应该在terraform init
之后运行。如果您设置了TF_工作区
,则在TF init
期间可能会出现错误,表示工作区还不存在,因此您可能会在TF init
之前尝试使用TF ws new
。不要这样做,只需在TF init
您的帐户中是否存在该表之后设置TF\u工作区
?那个角色可以访问它吗?当然可以。这个表存在于你的帐户中吗?那个角色可以访问它吗?当然可以。
failed to lock s3 state: 2 errors occurred:
* ResourceNotFoundException: Requested resource not found
* ResourceNotFoundException: Requested resource not found