Skip to content

Glue CreateConnection for BIGQUERY fails: server expects SparkProperties but SDK requires ConnectionProperties #3281

@shubhamdixit863

Description

@shubhamdixit863

Acknowledgements

Describe the bug

We’re creating an AWS Glue connection with ConnectionType=BIGQUERY via AWS SDK v2. The request must include ConnectionInput.ConnectionProperties per SDK validation, but when sent with ConnectionProperties and SparkProperties, Glue returns:

InvalidInputException: SparkProperties: is missing but it is required

We are sending:

ConnectionType: BIGQUERY
ConnectionProperties: {}
SparkProperties: { "secretId": "<secretName>" }

If we omit ConnectionProperties, the SDK rejects the request with:

missing required field, CreateConnectionInput.ConnectionInput.ConnectionProperties

It appears the service schema for BIGQUERY requires SparkProperties, but the SDK is either not serializing them correctly or the backend expects a different structure for BIGQUERY connections (possibly different property keys).

Exact go code

// Create Glue connection input
	connectionInput := &gluetypes.ConnectionInput{
		Name:           aws.String(connectionName),
		ConnectionType: gluetypes.ConnectionTypeBigquery,
		// Native connectors use SparkProperties for runtime configuration
		SparkProperties: map[string]string{
			"secretId": secretName, // The ARN or name of the secret in Secrets Manager
		},
		// ConnectionProperties often mirror SparkProperties for catalog validation
		ConnectionProperties: map[string]string{
			"SECRET_ID":     secretName,
			"parentProject": "cresto",
		},
		PhysicalConnectionRequirements: &gluetypes.PhysicalConnectionRequirements{
			SubnetId:            aws.String(subnetIdList[0]),
			SecurityGroupIdList: securityGroupIdList,
		},
		Description: aws.String(fmt.Sprintf("Glue connection for BigQuery-catalog %s", catalogName)),
	}

Regression Issue

  • Select this option if this issue appears to be a regression.

Expected Behavior

Should be able to create glue connection with google bigquery

Please clarify the correct payload schema for BIGQUERY connections, and/or update the SDK validation to align with the service.

Current Behavior

not able to create glue connection with google big query

Reproduction Steps

// Create Glue connection input
	connectionInput := &gluetypes.ConnectionInput{
		Name:           aws.String(connectionName),
		ConnectionType: gluetypes.ConnectionTypeBigquery,
		// Native connectors use SparkProperties for runtime configuration
		SparkProperties: map[string]string{
			"secretId": secretName, // The ARN or name of the secret in Secrets Manager
		},
		// ConnectionProperties often mirror SparkProperties for catalog validation
		ConnectionProperties: map[string]string{
			"SECRET_ID":     secretName,
			"parentProject": "crestolympiads-b63c3",
		},
		PhysicalConnectionRequirements: &gluetypes.PhysicalConnectionRequirements{
			SubnetId:            aws.String(subnetIdList[0]),
			SecurityGroupIdList: securityGroupIdList,
		},
		Description: aws.String(fmt.Sprintf("Glue connection for BigQuery-catalog %s", catalogName)),
	}

Possible Solution

No response

Additional Information/Context

No response

AWS Go SDK V2 Module Versions Used

github.com/aws/aws-sdk-go-v2 v1.41.0

Compiler and Version used

go version go1.25.2 darwin/arm64

Operating System and version

Mac os tahoe 26.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.closing-soonThis issue will automatically close in 4 days unless further comments are made.response-requestedWaiting on additional info and feedback. Will move to "closing-soon" in 7 days.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions