├── azure ├── azurerm_resource_group.tf ├── azure_cdn_frontdoor_rule_set.tf ├── azure_cdn_frontdoor_profile.tf ├── azure_cdn_frontdoor_endpoint.tf ├── provider.tf ├── azure_cdn_frontdoor_origin_group.tf ├── azure_cdn_frontdoor_route.tf ├── azure_cdn_frontdoor_rule.tf ├── variables.tf └── azure_cdn_frontdoor_origin.tf ├── aws ├── provider.tf ├── aws_cloudfront_function.tf ├── variables.tf ├── aws_cloudfront_origin_request_policy.tf ├── databricks_warehouse_function.js ├── aws_cloudfront_cache_policy.tf └── aws_cloudfront_distribution.tf ├── README.md ├── .gitignore └── LICENSE /azure/azurerm_resource_group.tf: -------------------------------------------------------------------------------- 1 | resource "azurerm_resource_group" "databricks_example_rg" { 2 | name = "${var.rg_name}" 3 | location = "${var.region}" 4 | } -------------------------------------------------------------------------------- /aws/provider.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | aws = { 4 | source = "hashicorp/aws" 5 | } 6 | } 7 | } 8 | 9 | provider "aws" { 10 | region = var.region 11 | } 12 | -------------------------------------------------------------------------------- /azure/azure_cdn_frontdoor_rule_set.tf: -------------------------------------------------------------------------------- 1 | resource "azurerm_cdn_frontdoor_rule_set" "databricks_example_ruleset" { 2 | name = "DatabricksExampleRuleSet" 3 | cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.databricks_example_profile.id 4 | } -------------------------------------------------------------------------------- /azure/azure_cdn_frontdoor_profile.tf: -------------------------------------------------------------------------------- 1 | resource "azurerm_cdn_frontdoor_profile" "databricks_example_profile" { 2 | name = "databricks-example-frontdoor-profile" 3 | resource_group_name = "${var.rg_name}" 4 | sku_name = "Premium_AzureFrontDoor" 5 | } -------------------------------------------------------------------------------- /azure/azure_cdn_frontdoor_endpoint.tf: -------------------------------------------------------------------------------- 1 | resource "azurerm_cdn_frontdoor_endpoint" "databricks_example_endpoint" { 2 | name = "databricks-example-frontdoor-endpoint" 3 | cdn_frontdoor_profile_id = azurerm_cdn_frontdoor_profile.databricks_example_profile.id 4 | } -------------------------------------------------------------------------------- /azure/provider.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | azurerm = { 4 | source = "hashicorp/azurerm" 5 | } 6 | } 7 | } 8 | 9 | provider "azurerm" { 10 | tenant_id = "${var.tenant_id}" 11 | subscription_id = "${var.subscription_id}" 12 | features {} 13 | } -------------------------------------------------------------------------------- /aws/aws_cloudfront_function.tf: -------------------------------------------------------------------------------- 1 | resource "aws_cloudfront_function" "dbx_example_function" { 2 | name = "databricks_warehouse_function" 3 | runtime = "cloudfront-js-2.0" 4 | comment = "Update a URL to add the warehouse info." 5 | publish = true 6 | code = file("${path.module}/databricks_warehouse_function.js") 7 | } -------------------------------------------------------------------------------- /aws/variables.tf: -------------------------------------------------------------------------------- 1 | variable "workspace_url" { 2 | type = string 3 | default = "community.cloud.databricks.com" 4 | description = "URL of Databricks workspace, excluding leading https://" 5 | } 6 | 7 | variable "region" { 8 | type = string 9 | default = "us-east-2" 10 | description = "AWS region for resource deployment" 11 | } -------------------------------------------------------------------------------- /aws/aws_cloudfront_origin_request_policy.tf: -------------------------------------------------------------------------------- 1 | resource "aws_cloudfront_origin_request_policy" "dbx_example_origin_policy" { 2 | name = "databricks-example-origin-policy" 3 | comment = "Policy for Stable URL on Databricks" 4 | cookies_config { 5 | cookie_behavior = "all" 6 | } 7 | headers_config { 8 | header_behavior = "allExcept" 9 | headers { 10 | items = ["host"] 11 | } 12 | } 13 | query_strings_config { 14 | query_string_behavior = "all" 15 | } 16 | } -------------------------------------------------------------------------------- /aws/databricks_warehouse_function.js: -------------------------------------------------------------------------------- 1 | async function handler(event) { 2 | 3 | // these should be stored in a KeyValueStore 4 | const warehouseID = "