Terraform error "Ваш запрос не дал результатов" - PullRequest
2 голосов
/ 18 февраля 2020

У меня ниже файл bom-asg.tf.

data "aws_ami" "bom-ami" {
most_recent = true

  filter {
    name   = "tag:ami_name"
    values = ["${var.environment}-bom-ami"]
  }

  owners = ["****"]
}

resource "aws_security_group" "bom-sg" {
  name_prefix = "${var.environment}-bom-asg-sg"
  vpc_id      = "${var.vpc_id}"
  .....

Я не могу успешно выполнить refre sh и планировать команды. Я получаю ошибки ниже.

terraform plan --var-file=environment-parity.tfvars -target=bom-asg.tf --out apply.out
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.


------------------------------------------------------------------------

No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.

Но когда я запускаю refre sh. Я получаю сообщение об ошибке ниже.

terraform refresh --var-file=environment-parity.tfvars
data.template_file.es_access_policy_search: Refreshing state...
data.aws_ami.nginx-ami: Refreshing state...
data.aws_ami.php-search-ami: Refreshing state...
data.aws_ami.ng-ami: Refreshing state...
data.aws_ami.mysql-ami: Refreshing state...
data.aws_ami.frontend-search-ami: Refreshing state...
data.aws_ami.bom-ami: Refreshing state...
data.aws_ami.lg-ami: Refreshing state...
data.aws_ami.rabbitmq-search-ami: Refreshing state...
data.aws_ami.ngas-ng-drupal-ami: Refreshing state...
data.aws_ami.mongodb-ami: Refreshing state...

Error: Error refreshing state: 1 error(s) occurred:

* data.aws_ami.bom-ami: 1 error(s) occurred:

* data.aws_ami.bom-ami: data.aws_ami.bom-ami: Your query returned no results. Please change your search criteria and try again.

Не могли бы вы помочь?

1 Ответ

2 голосов
/ 18 февраля 2020

Terraform источник данных предназначен для доступа к существующему ресурсу, а не для его создания.

data "aws_ami" "bom-ami"

Как и в документации, AMI должен уже существовать.

Используйте этот источник данных для получения идентификатора зарегистрированного AMI для использования в других ресурсах.

Если вы создаете AMI из снимка EBS, сделанного из экземпляра EC2 (например, Amazon Linux EC2), то:

Обратите внимание на разницу между data и resource .

Чтобы создать пользовательское изображение AMI, также обратите внимание на Пакер Hashicorp .

...