provider "google" { version = "~> 2.2" project = "${var.gcp_project}" region = "${var.gcp_region}" } variable "gcp_project" {} variable "gcp_region" {} resource "google_cloudfunctions_function" "test_function" { name = "test_function" }
$ terraform validate Error: google_cloudfunctions_function.test_function: "name" can only contain letters, numbers and hyphens
В соответствии с документацией Google в имени функции допустимо использовать буквы, цифры, дефисы и подчеркивания.
Подготовил исправление для этой проблемы. Для тестирования пришлось использовать golang-1.12 (go version go1.12.1 linux/amd64) из Debian Unstable, т.к. в golang-1.11 (go version go1.11.5 linux/amd64) из stretch-backports есть ошибка при запуске тестов
$ make -f GNUmakefile test ==> Checking source code against gofmt... ==> Checking that code complies with gofmt requirements... go test -i $(go list ./... |grep -v 'vendor') || exit 1 go test golang_org/x/net/dns/dnsmessage: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/net/dns/dnsmessage.a: permission denied go test golang_org/x/crypto/cryptobyte/asn1: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/crypto/cryptobyte/asn1.a: permission denied go test golang_org/x/crypto/curve25519: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/crypto/curve25519.a: permission denied go test golang_org/x/crypto/poly1305: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/crypto/poly1305.a: permission denied go test golang_org/x/text/transform: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/text/transform.a: permission denied go test golang_org/x/crypto/internal/chacha20: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/crypto/internal/chacha20.a: permission denied go test golang_org/x/text/unicode/bidi: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/text/unicode/bidi.a: permission denied go test golang_org/x/net/http2/hpack: open /usr/lib/go-1.11/pkg/linux_amd64/vendor/golang_org/x/net/http2/hpack.a: permission denied GNUmakefile:11: recipe for target 'test' failed make: *** [test] Error 1
Похоже это известная регрессия в golang 1.11.
"^[a-zA-Z0-9-_]+$"
ОтветитьУдалитьтакая регулярка может оказаться некорректной, обычно само тире располагают последним в квадратных скобках, чтобы оно не воспринималось как диапазон.
Возможно в данном случае, из-за того что там диапазон 0-9 впереди, оно и сработает, но это зависит от реализации и лучше не путать людей.
PS: случайно мимо проходил.