#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
аргумента.