обновление для передачи aws -сервер выдает ошибки

#amazon-web-services #terraform #aws-cli

#amazon-веб-сервисы #terraform #aws-cli

Вопрос:

Я использую terraform для создания сервера aws sftp и пытаюсь использовать белый список IP для защиты своего сервера.

В настоящее время команда Terraform aws_transfer_server поддерживает только endpoint_types, такие как PUBLIC или VPC_ENDPOINT. Итак, я использую null_resource для выполнения команды aws для обновления sftp-сервера после его создания. Фрагмент terraform приведен ниже:

 resource "null_resource" "update_sftp_server" {
  provisioner "local-exec" {
    command = <<EOF
aws transfer update-server --server-id ${aws_transfer_server.sftp.id} --endpoint-type VPC --endpoint-details SubnetIds="${join("", "", var.subnet_ids)}", AddressAllocationIds="${join("", "", toset(aws_eip.nlb.*.id))}", VPCEndpointID="${aws_vpc_endpoint.transfer.id}", VpcId="${var.vpc_id}"
EOF
  }
  depends_on = [aws_transfer_server.sftp, aws_vpc_endpoint.transfer]
}
  

При этом выполняется приведенная ниже команда aws

 aws transfer update-server --server-id s-######## --endpoint-type VPC --endpoint-details SubnetIds="subnet-#####", "subnet-#####", AddressAllocationIds="eipalloc-######", "eipalloc-######", VPCEndpointID="vpce-#######", VpcId="vpc-#####"
  

Но я получаю сообщение об ошибке, как показано ниже:

 usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

Unknown options: AddressAllocationIds=eipalloc-######, eipalloc-######, VPCEndpointID=vpce-######, VpcId=vpc-######, subnet-######
  

Может кто-нибудь помочь мне узнать, почему возникает эта ошибка? Ниже приведены сведения о моей среде:

 Terraform v0.12.28
provider.aws v3.0.0
provider.null v2.1.2
aws-cli/2.0.33 Python/3.7.7 Windows/10 botocore/2.0.0dev37
  

Комментарии:

1. Вы пробовали создавать свой список аргументов без пробелов? Так что это выглядит SubnetIds="subnet-#####","subnet-#####",AddressAllocationIds="eipalloc-######","eipalloc-######",VPCEndpointID="vpce-#######",VpcId="vpc-#####" ?

2. @lxop: Это сработало. Но теперь я получаю сообщение об ошибке An error occurred (InvalidRequestException) when calling the UpdateServer operation: Cannot specify AddressAllocationids when updating server to EndpointType: VPC

3. Звучит как отдельный вопрос, но убедитесь, что вы написали с заглавной буквы Ids раздел имени свойства — сообщение об ошибке предполагает, что вы этого не сделали

Ответ №1:

Вы пробовали создавать свой список аргументов без пробелов? Так что это выглядит SubnetIds="subnet-#####","subnet-#####",AddressAllocationIds="eipalloc-######","eipalloc-######",VPCEndpointID="vpce-#######",VpcId="vpc-#####" ?

В противном случае, когда командная строка разбивается на токены, большинство этих битов не будут проанализированы как часть --endpoint-details аргумента.