CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-pulumi--aws

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources with infrastructure-as-code.

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

athena.mddocs/services/

Amazon Athena

Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL.

Package

import * as aws from "@pulumi/aws";
import * as athena from "@pulumi/aws/athena";

Key Resources

Workgroup

Query workgroup for managing queries and costs.

const workgroup = new aws.athena.Workgroup("analytics", {
    name: "analytics-workgroup",
    configuration: {
        resultConfiguration: {
            outputLocation: pulumi.interpolate`s3://${resultsBucket.id}/athena-results/`,
            encryptionConfiguration: {
                encryptionOption: "SSE_S3",
            },
        },
        enforceWorkgroupConfiguration: true,
        publishCloudwatchMetricsEnabled: true,
        bytesScannedCutoffPerQuery: 100000000,
    },
    tags: {
        Environment: "production",
    },
});

Named Query

Saved SQL query.

const namedQuery = new aws.athena.NamedQuery("daily-report", {
    name: "daily-sales-report",
    workgroup: workgroup.id,
    database: "sales_db",
    query: `
        SELECT 
            date,
            SUM(amount) as total_sales,
            COUNT(*) as transaction_count
        FROM sales
        WHERE date = current_date
        GROUP BY date
    `,
    description: "Daily sales summary report",
});

Database

Athena database (uses Glue catalog).

const database = new aws.athena.Database("data-lake", {
    name: "data_lake_db",
    bucket: resultsBucket.id,
    comment: "Data lake analytics database",
});

Common Patterns

Query with Encryption

const secureWorkgroup = new aws.athena.Workgroup("secure", {
    name: "secure-workgroup",
    configuration: {
        resultConfiguration: {
            outputLocation: pulumi.interpolate`s3://${resultsBucket.id}/secure-results/`,
            encryptionConfiguration: {
                encryptionOption: "SSE_KMS",
                kmsKey: kmsKey.arn,
            },
        },
    },
});

Use Cases

  • Ad-Hoc Queries: Interactive SQL analysis
  • Log Analysis: Query CloudTrail, VPC Flow Logs
  • Data Lake Analytics: Query data in S3
  • Cost Optimization: Analyze AWS cost and usage data

Related Services

  • S3 - Data source
  • Glue - Data catalog
  • QuickSight - Visualization

Install with Tessl CLI

npx tessl i tessl/npm-pulumi--aws@7.16.0

docs

index.md

quickstart.md

README.md

tile.json