Использование скриптов Athena Terraform - PullRequest
0 голосов
/ 25 сентября 2018

Amazon Athena считывает данные из входных корзин Amazon S3, используя учетные данные IAM пользователя, отправившего запрос; результаты запроса сохраняются в отдельном сегменте S3 .

Вот скрипт на сайте Hashicorp https://www.terraform.io/docs/providers/aws/r/athena_database.html

resource "aws_s3_bucket" "hoge" {
  bucket = "hoge"
}

resource "aws_athena_database" "hoge" {
  name = "database_name"
  bucket = "${aws_s3_bucket.hoge.bucket}"
}

Где написано

bucket - (Required) Name of s3 bucket to save the results of the query execution.

Как я могу указать входной сегмент S3 в скрипте terraform?

1 Ответ

0 голосов
/ 20 марта 2019

Входная корзина S3 указывается в каждой таблице, которую вы создаете в базе данных, поэтому для нее нет глобального определения.

На сегодняшний день в API-интерфейсе AWS не предусмотрено много возможностей для управления Athena.как таковой, ни команда aws CLI, ни Terraform.Не существует «правильного» способа создания таблицы с помощью этих средств.

Теоретически, вы можете создать именованный запрос для создания таблицы, а затем выполнить этот запрос (для которого есть функциональность API, но пока нетTerraform).Мне это кажется немного грязным, но, вероятно, это сработает, если / когда TF получит функциональность StartQuery.Асинхронный характер Athena усложняет определение того, когда эта таблица действительно была создана, и поэтому я могу себе представить, что TF не будет полностью поддерживать создание таблицы напрямую.

Код TF, который охватывает доступные в настоящее время функции, находится здесь: https://github.com/terraform-providers/terraform-provider-aws/tree/master/aws

API Doco для функций Athena здесь: https://docs.aws.amazon.com/athena/latest/APIReference/API_Operations.html

...