使用Terraform创buildGCE实例,附加辅助磁盘时发生错误?

我的terraform文件看起来像这样。

resource "google_compute_disk" "sqlserversecondary" { name = "sql-server-secondary" type = "pd-ssd" zone = "us-central1-a" size = "512" } resource "google_compute_instance" "sqlserver2016rc2" { name = "sqlserver2016rc2" machine_type = "n1-highmem-8" tags = ["database", "sqlserver2016rc2"] zone = "us-central1-a" disk { image = "sqlserver2016" size = "120" } disk { image = "sql-server-secondary" } network_interface { network = "default" access_config { // Ephemeral IP } } service_account { scopes = ["userinfo-email", "compute-ro", "storage-ro"] } } 

第二个磁盘存在于GCE中,但在这种情况下,我不断收到以下错误。

 Error applying plan: 1 error(s) occurred: * google_compute_instance.sqlserver2016rc2: Error creating instance: googleapi: Error 400: Invalid value for field 'resource.disks[1].initializeParams': ''. Cannot specify initializeParams for non-boot persistent disks., invalid 

对于你的第二个磁盘,你想使用disk = "sql-server-secondary"而不是image作为标识符。 此外,最好使用Terraform的内插语法(例如${...} )引用第二个磁盘,以确保您的资源按照适当的顺序创build和pipe理。

 resource "google_compute_disk" "sqlserversecondary" { name = "sql-server-secondary" type = "pd-ssd" zone = "us-central1-a" size = "512" } resource "google_compute_instance" "sqlserver2016rc2" { name = "sqlserver2016rc2" machine_type = "n1-highmem-8" tags = ["database", "sqlserver2016rc2"] zone = "us-central1-a" disk { image = "ubuntu-1404-trusty-v20160114e" size = "120" } disk { disk = "${google_compute_disk.sqlserversecondary.name}" // s/image/disk } network_interface { network = "default" access_config { // Ephemeral IP } } service_account { scopes = ["userinfo-email", "compute-ro", "storage-ro"] } } 

Terraform为来自预先存在的图像( 代码 )的磁盘设置InitializeParams ,这会导致您收到的错误。 看起来在这种情况下可能有一个错误,从现有的图像附加一个非启动磁盘,但我仍然在深入挖掘。

希望这可以帮助!