Я пытаюсь создать Athena Views, используя SQL. И, честно говоря, я достиг этого - почти.
resource "null_resource" "views" {
provisioner "local-exec" {
## success using file://
#command = "aws athena start-query-execution --query-string file://query11.sql --output json --query-execution-context Database=${aws_athena_database.metadb.id} --result-configuration OutputLocation=s3://xxxxxxx2"
## fails when using string
command = "aws athena start-query-execution --query-string \"CREATE OR REPLACE VIEW query11 AS SELECT * FROM meta.getresources_vw\" --output json --query-execution-context Database=${aws_athena_database.metadb.id} --result-configuration OutputLocation=s3://xxxxxxx2"
}
}
В коде строка command
, которая использует file
для передачи кода sql, работает отлично.
Однако строка command
, которая пытается передать sql в виде строки - не удалась.
Я попытался заключить строку в одинарные, двойные кавычки; сбежал с обратным слэсом sh и не .... все без улучшения.
Ошибка при использовании строки такова:
null_resource.views: Предоставление с 'local -exe c '... null_resource.views (local-exe c): Выполнение: ["cmd" "/ C" "aws athena start-query-execute -query-string \" СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ВИД запроса11 КАК ВЫБРАТЬ * ИЗ МЕТА meta.getresources_vw \ "--output json --query-execute-context База данных = testbug --result-configuration OutputLocation = s3: // xxxxxxx2"] null_resource.views (local- exe c): использование: aws [параметры] [...] [параметры] null_resource.views (local-exe c): чтобы увидеть текст справки, вы можете запустить:
null_resource .views (local-exe c): aws help null_resource.views (local-exe c): aws help null_resource.views (local-exe c):
aws help
null_resource.views (local-exe c): неизвестные параметры: ЗАМЕНА, ПРОСМОТР, query11, AS, SELECT, *, FROM, meta.getresources_vw ", ИЛИ
Ошибка: ошибка работает вместе mmand 'aws athena start-query-execute --query-string "CREATE OR REPLACE VIEW query11 AS SELECT * FROM meta.getresources_vw" --output json --query-execute-context База данных = testbug --result- конфигурация OutputLocation = s3: // xxxxxxx2 ': статус выхода 255. Выход: использование: aws [опции] [...] [параметры] Чтобы просмотреть текст справки, вы можете запустить:
aws help aws help aws help
Неизвестные параметры: REPLACE, VIEW, query11, AS, SELECT, *, FROM, meta.getresources_vw ", OR
Довольно интересно, если я скопирую команду, показанную в последней части сообщения об ошибке, и вставлю ее непосредственно в CLI; выполняется успешно.
aws athena start-query-execution --query-string "CREATE OR REPLACE VIEW query11 AS SELECT * FROM meta.getresources_vw" --output json --query-execution-context Database=testbug --result-configuration OutputLocation=s3://xxxxxxx2