createDevEndpoint method
- required String endpointName,
- required String roleArn,
- Map<
String, String> ? arguments, - String? extraJarsS3Path,
- String? extraPythonLibsS3Path,
- String? glueVersion,
- int? numberOfNodes,
- int? numberOfWorkers,
- String? publicKey,
- List<
String> ? publicKeys, - String? securityConfiguration,
- List<
String> ? securityGroupIds, - String? subnetId,
- Map<
String, String> ? tags, - WorkerType? workerType,
Creates a new development endpoint.
May throw AccessDeniedException. May throw AlreadyExistsException. May throw IdempotentParameterMismatchException. May throw InternalServiceException. May throw OperationTimeoutException. May throw InvalidInputException. May throw ValidationException. May throw ResourceNumberLimitExceededException.
Parameter endpointName
:
The name to be assigned to the new DevEndpoint
.
Parameter roleArn
:
The IAM role for the DevEndpoint
.
Parameter arguments
:
A map of arguments used to configure the DevEndpoint
.
Parameter extraJarsS3Path
:
The path to one or more Java .jar
files in an S3 bucket that
should be loaded in your DevEndpoint
.
Parameter extraPythonLibsS3Path
:
The paths to one or more Python libraries in an Amazon S3 bucket that
should be loaded in your DevEndpoint
. Multiple values must be
complete paths separated by a comma.
Parameter glueVersion
:
Glue version determines the versions of Apache Spark and Python that AWS
Glue supports. The Python version indicates the version supported for
running your ETL scripts on development endpoints.
For more information about the available AWS Glue versions and corresponding Spark and Python versions, see Glue version in the developer guide.
Development endpoints that are created without specifying a Glue version default to Glue 0.9.
You can specify a version of Python support for development endpoints by
using the Arguments
parameter in the
CreateDevEndpoint
or UpdateDevEndpoint
APIs. If
no arguments are provided, the version defaults to Python 2.
Parameter numberOfNodes
:
The number of AWS Glue Data Processing Units (DPUs) to allocate to this
DevEndpoint
.
Parameter numberOfWorkers
:
The number of workers of a defined workerType
that are
allocated to the development endpoint.
The maximum number of workers you can define are 299 for
G.1X
, and 149 for G.2X
.
Parameter publicKey
:
The public key to be used by this DevEndpoint
for
authentication. This attribute is provided for backward compatibility
because the recommended attribute to use is public keys.
Parameter publicKeys
:
A list of public keys to be used by the development endpoints for
authentication. The use of this attribute is preferred over a single
public key because the public keys allow you to have a different private
key per client.
Parameter securityConfiguration
:
The name of the SecurityConfiguration
structure to be used
with this DevEndpoint
.
Parameter securityGroupIds
:
Security group IDs for the security groups to be used by the new
DevEndpoint
.
Parameter subnetId
:
The subnet ID for the new DevEndpoint
to use.
Parameter tags
:
The tags to use with this DevEndpoint. You may use tags to limit access to
the DevEndpoint. For more information about tags in AWS Glue, see AWS
Tags in AWS Glue in the developer guide.
Parameter workerType
:
The type of predefined worker that is allocated to the development
endpoint. Accepts a value of Standard, G.1X, or G.2X.
-
For the
Standard
worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker. -
For the
G.1X
worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs. -
For the
G.2X
worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.
G.2X
WorkerType
configuration, the Spark drivers
for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64
GB disk.
Implementation
Future<CreateDevEndpointResponse> createDevEndpoint({
required String endpointName,
required String roleArn,
Map<String, String>? arguments,
String? extraJarsS3Path,
String? extraPythonLibsS3Path,
String? glueVersion,
int? numberOfNodes,
int? numberOfWorkers,
String? publicKey,
List<String>? publicKeys,
String? securityConfiguration,
List<String>? securityGroupIds,
String? subnetId,
Map<String, String>? tags,
WorkerType? workerType,
}) async {
ArgumentError.checkNotNull(endpointName, 'endpointName');
ArgumentError.checkNotNull(roleArn, 'roleArn');
_s.validateStringLength(
'glueVersion',
glueVersion,
1,
255,
);
_s.validateStringLength(
'securityConfiguration',
securityConfiguration,
1,
255,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSGlue.CreateDevEndpoint'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'EndpointName': endpointName,
'RoleArn': roleArn,
if (arguments != null) 'Arguments': arguments,
if (extraJarsS3Path != null) 'ExtraJarsS3Path': extraJarsS3Path,
if (extraPythonLibsS3Path != null)
'ExtraPythonLibsS3Path': extraPythonLibsS3Path,
if (glueVersion != null) 'GlueVersion': glueVersion,
if (numberOfNodes != null) 'NumberOfNodes': numberOfNodes,
if (numberOfWorkers != null) 'NumberOfWorkers': numberOfWorkers,
if (publicKey != null) 'PublicKey': publicKey,
if (publicKeys != null) 'PublicKeys': publicKeys,
if (securityConfiguration != null)
'SecurityConfiguration': securityConfiguration,
if (securityGroupIds != null) 'SecurityGroupIds': securityGroupIds,
if (subnetId != null) 'SubnetId': subnetId,
if (tags != null) 'Tags': tags,
if (workerType != null) 'WorkerType': workerType.toValue(),
},
);
return CreateDevEndpointResponse.fromJson(jsonResponse.body);
}