aws transfer update-server wirft fehler aus

Aug 26 2020

Ich verwende Terraform, um einen aws-SFTP-Server zu erstellen, und versuche, IP-Whitelisting zu verwenden, um meinen Server zu sichern.

Der aws_transfer_serverBefehl Terraform unterstützt derzeit nur Endpunkttypen wie PUBLIC oder VPC_ENDPOINT. Ich verwende also null_resourceeinen aws-Befehl, um den SFTP-Server nach seiner Erstellung zu aktualisieren. Das Terraform-Snippet ist unten:

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]
}

Dadurch wird der folgende Befehl aws ausgeführt

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

Aber ich bekomme eine Fehlermeldung wie folgt:

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-######

Kann mir jemand helfen zu wissen, warum dieser Fehler ausgelöst wird? Meine Umgebungsdetails sind unten:

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

Antworten

2 lxop Aug 26 2020 at 20:59

Haben Sie versucht, Ihre Argumentliste ohne Leerzeichen zu erstellen? So wie es aussieht SubnetIds="subnet-#####","subnet-#####",AddressAllocationIds="eipalloc-######","eipalloc-######",VPCEndpointID="vpce-#######",VpcId="vpc-#####"?

Andernfalls werden die meisten dieser Bits nicht als Teil des --endpoint-detailsArguments analysiert, wenn die Befehlszeile in Token aufgeteilt wird .