#amazon-web-services #terraform #terraform-provider-aws
Вопрос:
Я получаю сообщение об ошибке «известно после применения», когда пытаюсь запросить зоны доступности через источник данных для любого региона в конкретной учетной записи.Но то же самое отлично работает для других учетных записей aws.Кроме того, раньше это работало нормально, а теперь не работает
Мой data.tf содержимое файла
data "aws_availability_zones" "available_subnet" { state = "available" }
мой provider.tf
provider "aws" { profile = "profile-dev" region = "eu-central-1" }
Если я попробую ниже через консоль terraform, то получу ошибку
gt; data.aws_availability_zones.available_subnet.names (known after apply) gt;
Но если попробовать то же самое с другой учетной записью, и она работает так, как ожидалось, как показано ниже
gt; data.aws_availability_zones.available_subnet.names tolist([ "us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d", ])
Есть ли какие-либо проблемы с правами учетной записи или настройками(ранее это работало нормально).Возможность запрашивать то же самое через интерфейс командной строки aws
# aws ec2 describe-availability-zones --region=eu-central-1 --profile=profile-dev|grep -i zoneName "ZoneName": "eu-central-1a", "ZoneName": "eu-central-1b", "ZoneName": "eu-central-1c",
Это проблема терраформирования?
Комментарии:
1.
(known after apply)
это не ошибка, это означает, что простойterraform plan
не будет извлекать данные из API, вам это понадобится дляterraform apply
того, чтобы получить эти значения.
Ответ №1:
Я обнаружил, что это не проблема terraform или aws.Похоже,что после запуска terraform apply и запуска его с консоли он выводит результат.Вот что произошло в моей другой учетной записи aws, где я могу получить зоны.Таким образом, консоль terraform выводит исходные данные только в том случае, если они находятся в файле состояния.