Невозможно получить данные о зонах доступности с помощью источника данных в определенной учетной записи aws

#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 выводит исходные данные только в том случае, если они находятся в файле состояния.