Skip to content

Glue

CloudMock emulates AWS Glue, supporting Data Catalog (databases, tables), crawlers, ETL jobs with job runs, connections, and tagging.

OperationStatusNotes
CreateDatabaseSupportedCreates a Glue database
GetDatabaseSupportedReturns database details
GetDatabasesSupportedLists all databases
DeleteDatabaseSupportedDeletes a database
CreateTableSupportedCreates a table in a database
GetTableSupportedReturns table details
GetTablesSupportedLists tables in a database
DeleteTableSupportedDeletes a table
UpdateTableSupportedUpdates table definition
CreateCrawlerSupportedCreates a crawler
GetCrawlerSupportedReturns crawler details
GetCrawlersSupportedLists all crawlers
DeleteCrawlerSupportedDeletes a crawler
StartCrawlerSupportedStarts a crawler run
StopCrawlerSupportedStops a running crawler
CreateJobSupportedCreates an ETL job
GetJobSupportedReturns job details
GetJobsSupportedLists all jobs
DeleteJobSupportedDeletes a job
StartJobRunSupportedStarts a job run
GetJobRunSupportedReturns job run details
GetJobRunsSupportedLists job runs
BatchStopJobRunSupportedStops multiple job runs
CreateConnectionSupportedCreates a connection
GetConnectionSupportedReturns connection details
GetConnectionsSupportedLists all connections
DeleteConnectionSupportedDeletes a connection
TagResourceSupportedAdds tags to a resource
UntagResourceSupportedRemoves tags from a resource
GetTagsSupportedReturns tags for a resource
import { GlueClient, CreateDatabaseCommand, CreateTableCommand } from '@aws-sdk/client-glue';
const client = new GlueClient({
endpoint: 'http://localhost:4566',
region: 'us-east-1',
credentials: { accessKeyId: 'test', secretAccessKey: 'test' },
});
await client.send(new CreateDatabaseCommand({
DatabaseInput: { Name: 'my_database' },
}));
await client.send(new CreateTableCommand({
DatabaseName: 'my_database',
TableInput: { Name: 'my_table', StorageDescriptor: { Columns: [{ Name: 'id', Type: 'int' }], Location: 's3://my-bucket/data/' } },
}));
import boto3
client = boto3.client('glue',
endpoint_url='http://localhost:4566',
region_name='us-east-1',
aws_access_key_id='test',
aws_secret_access_key='test')
client.create_database(DatabaseInput={'Name': 'my_database'})
client.create_table(
DatabaseName='my_database',
TableInput={'Name': 'my_table', 'StorageDescriptor': {'Columns': [{'Name': 'id', 'Type': 'int'}], 'Location': 's3://my-bucket/data/'}})
cloudmock.yml
services:
glue:
enabled: true
  • Crawlers do not actually discover schemas from data sources
  • ETL jobs do not execute real Spark/Python scripts
  • Job run status transitions are simulated