使用 Athena Terraform 脚本

Him*_*dar 5 amazon-s3 amazon-web-services terraform amazon-athena

Amazon Athena 使用提交查询的用户的 IAM 凭证从输入 Amazon S3 存储桶读取数据;查询结果存储在单独的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}"
}
Run Code Online (Sandbox Code Playgroud)

哪里说的

bucket - (Required) Name of s3 bucket to save the results of the query execution.
Run Code Online (Sandbox Code Playgroud)

如何在 terraform 脚本中指定输入 S3 存储桶?

Ral*_*ton 1

输入 S3 存储桶在您在数据库中创建的每个表中指定,因此,它没有全局定义。

截至目前,AWS API 没有太多用于 Athena 管理的规定,awsCLI 命令和 Terraform 也没有。没有“正确”的方法来通过这些方式创建表。

理论上,您可以创建一个命名查询来创建表,然后执行该查询(有 API 功能,但 Terraform 还没有)。对我来说这似乎有点混乱,但如果/当 TF 获得 StartQuery 功能时它可能会起作用。Athena 的异步特性使得很难知道该表何时实际创建,因此我可以想象 TF 不会直接完全支持表创建。

涵盖当前可用功能的 TF 代码位于: https: //github.com/terraform-providers/terraform-provider-aws/tree/master/aws

Athena 函数的 API doco 位于:https://docs.aws.amazon.com/athena/latest/APIReference/API_Operations.html