Defines and uses a custom connector for AWS Glue to connect to Snowflake using a JDBC driver stored in S3.

Terraform Template

data "aws_secretmanager_secret" "example" {
}

resource "aws_glue_connection" "example_connection" {

  connection_properties = {
    CONNECTION_TYPE = "Jdbc"
    CONNECTOR_CLASS_NAME = "net.snowflake.client.jdbc.SnowflakeDriver"
    CONNECTOR_URL = "s3://example/snowflake-jdbc.jar"
    JDBC_CONNECTION_URL = "jdbc❄//example.com/?user=$${user}&password=$${password}"
    SECRET_ID = data.aws_secretmanager_secret.example.name
  }
  connection_type = "CUSTOM"
  match_criteria = ["Connection", aws_glue_connection.example_connector.name]
  name = "example"
}

resource "aws_glue_connection" "example_connector" {

  connection_properties = {
    CONNECTION_TYPE = "Jdbc"
    CONNECTOR_CLASS_NAME = "net.snowflake.client.jdbc.SnowflakeDriver"
    CONNECTOR_URL = "s3://example/snowflake-jdbc.jar"
    JDBC_CONNECTION_URL = "[["default=jdbc❄//example.com/?user=$${user}&password=$${password}"],","]"
  }
  connection_type = "CUSTOM"
  match_criteria = ["template-connection"]
  name = "example_connector"
}