Создать AWS Athena View проблемно с помощью Terraform - PullRequest
3 голосов
/ 08 марта 2020

Я пытаюсь создать 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
...