Skip to content

DevEndpoint

The DevEndpoint resource allows you to create and manage AWS Glue DevEndpoints, which are used to develop and test ETL scripts in AWS Glue. For more information, see the AWS Glue DevEndpoints documentation.

Minimal Example

Create a basic Glue DevEndpoint with required properties and common optional settings.

ts
import AWS from "alchemy/aws/control";

const devEndpoint = await AWS.Glue.DevEndpoint("myDevEndpoint", {
  roleArn: "arn:aws:iam::123456789012:role/MyGlueRole",
  numberOfNodes: 2,
  workerType: "G.1X",
  subnetId: "subnet-0abcdef1234567890",
  securityGroupIds: ["sg-0abcdef1234567890"]
});

Advanced Configuration

Configure a DevEndpoint with additional options, including extra JARs and Python libraries.

ts
const advancedDevEndpoint = await AWS.Glue.DevEndpoint("advancedDevEndpoint", {
  roleArn: "arn:aws:iam::123456789012:role/MyGlueRole",
  numberOfWorkers: 5,
  glueVersion: "2.0",
  extraJarsS3Path: "s3://my-glue-libs/my-additional-jars.jar",
  extraPythonLibsS3Path: "s3://my-glue-libs/my-additional-libs.zip",
  publicKeys: ["ssh-rsa AAAAB3..."],
  tags: {
    Project: "ETL",
    Environment: "Development"
  }
});

Using Custom Arguments

Demonstrate how to pass custom arguments to the DevEndpoint for specific configurations.

ts
const customArgsDevEndpoint = await AWS.Glue.DevEndpoint("customArgsDevEndpoint", {
  roleArn: "arn:aws:iam::123456789012:role/MyGlueRole",
  arguments: {
    "--key1": "value1",
    "--key2": "value2"
  },
  numberOfNodes: 3,
  subnetId: "subnet-0abcdef1234567890",
  securityGroupIds: ["sg-0abcdef1234567890"]
});

Security Configuration

Create a DevEndpoint with a specific security configuration, including custom security groups.

ts
const secureDevEndpoint = await AWS.Glue.DevEndpoint("secureDevEndpoint", {
  roleArn: "arn:aws:iam::123456789012:role/MyGlueRole",
  securityConfiguration: "mySecurityConfig",
  securityGroupIds: ["sg-0abcdef1234567890"],
  subnetId: "subnet-0abcdef1234567890",
  numberOfNodes: 2,
  endpointName: "secure-endpoint"
});