Я получил эту ошибку при обновлении файла состояния:
Error upgrading state file format from version 3 to version 4: invalid
provider config reference "provider.aws.${var.short_region}" for
aws_route53_zone.zone: this alias seems to contain a template interpolation
sequence, which was not supported but also not error-checked in Terraform
0.11. To proceed, rename the associated provider alias to a valid identifier
and apply the change with Terraform 0.11 before upgrading to Terraform 0.12.
Моя конфигурация: Terraform v0.12.20
, поставщик. aws v2.55.0
, provider.null v2.1.2
, provider.template v2.1.2
Код изначально был в 0.11
версии и был обновлен до 0.12
. Теперь код находится в 0.12
На моей машине файл состояния:
{
"version": 3,
"serial": 1,
"lineage": "82ed8aae-e320-656e-01bb-55343b020bce",
"backend": {
"type": "s3",
"config": {
"access_key": null,
"acl": null,
"assume_role_policy": null,
"bucket": "domain-terraform-state",
"dynamodb_endpoint": null,
"dynamodb_table": "tfstate-lock",
"encrypt": null,
"endpoint": null,
"external_id": null,
"force_path_style": null,
"iam_endpoint": null,
"key": "us-west-2/.../tfstate",
"kms_key_id": null,
"lock_table": null,
"max_retries": null,
"profile": null,
"region": "us-west-2",
"role_arn": null,
"secret_key": null,
"session_name": null,
"shared_credentials_file": null,
"skip_credentials_validation": null,
"skip_get_ec2_platforms": null,
"skip_metadata_api_check": null,
"skip_region_validation": null,
"skip_requesting_account_id": null,
"sse_customer_key": null,
"sts_endpoint": null,
"token": null,
"workspace_key_prefix": null
},
"hash": 834316
},
"modules": [
{
"path": [
"root"
],
"outputs": {},
"resources": {},
"depends_on": []
}
]
}
Файл удаленного состояния (связанная часть):
{
"module": "module.private_zone",
"mode": "managed",
"type": "aws_route53_record",
"name": "ns",
"provider": "provider.aws",
"instances": [
{
"schema_version": 2,
"attributes_flat": {
"fqdn": "test.usw2.int.domain.com",
"health_check_id": "",
"id": "Z202AKIFU71_test.usw2.int.domain.com_NS",
"name": "test.usw2.int.domain.com",
"records.#": "4",
"records.17965321": "ns-512.awsdns-00.net.",
"records.27280594": "ns-1536.awsdns-00.co.uk.",
"records.40921603": "ns-1024.awsdns-00.org.",
"records.4560074": "ns-0.awsdns-00.com.",
"set_identifier": "",
"ttl": "30",
"type": "NS",
"zone_id": "Z202AKIFU71"
},
"depends_on": [
"aws_route53_zone.zone"
]
}
]
},
{
"module": "module.public_zone",
"mode": "managed",
"type": "aws_route53_record",
"name": "ns",
"provider": "provider.aws",
"instances": [
{
"schema_version": 2,
"attributes_flat": {
"fqdn": "tg.domain.com",
"health_check_id": "",
"id": "ZDF63N3P_tg.domain.com_NS",
"name": "tg.qless.com",
"records.#": "4",
"records.14902820": "ns-1311.awsdns-35.org",
"records.28929605": "ns-684.awsdns-21.net",
"records.35445644": "ns-1563.awsdns-03.co.uk",
"records.4857601": "ns-155.awsdns-19.com",
"set_identifier": "",
"ttl": "30",
"type": "NS",
"zone_id": "ZDF63N3P"
},
"depends_on": [
"aws_route53_zone.zone"
]
}
]
},
В main.tf
нет ничего похожего на "provider.aws.${var.short_region}"
.
В других 2 подмодулях есть только то, что:
module private-hosted-zone.tf
resource "aws_route53_zone" "zone" {
name = var.subdomain
vpc {
vpc_id = var.vpc_id
}
comment = "Private Zone for ${var.environment_name}"
tags = {
Name = "${var.environment_name}-r53-private"
Environment = var.environment_name
EnvironmentType = var.environment_type
FullRegion = var.aws_region
ShortRegion = var.short_region
Terraform = "true"
}
}
module public-hosted-zone.tf
resource "aws_route53_zone" "zone" {
name = var.subdomain
comment = "Public Zone for ${var.environment_name}"
tags = {
Name = "${var.environment_name}-r53-public"
Environment = var.environment_name
EnvironmentType = var.environment_type
FullRegion = var.aws_region
ShortRegion = var.short_region
Terraform = "true"
}
}
Не могу понять, как это исправить ...