Skip to content

create_dev_endpoint

create_dev_endpoint(
    endpoint_name: GenericString,
    role_arn: RoleArn,
    *,
    config_overrides: Optional[GlueClientConfig] = None,
    security_group_ids: Optional[StringList] = None,
    subnet_id: Optional[GenericString] = None,
    public_key: Optional[GenericString] = None,
    public_keys: Optional[PublicKeysList] = None,
    number_of_nodes: Optional[IntegerValue] = None,
    worker_type: Optional[WorkerType] = None,
    glue_version: Optional[GlueVersionString] = None,
    number_of_workers: Optional[NullableInteger] = None,
    extra_python_libs_s3_path: Optional[GenericString] = None,
    extra_jars_s3_path: Optional[GenericString] = None,
    security_configuration: Optional[NameString] = None,
    tags: Optional[TagsMap] = None,
    arguments: Optional[MapValue] = None,
) -> CreateDevEndpointResponse

Creates a new development endpoint.

Parameters:

  • endpoint_name (GenericString) –

    The name to be assigned to the new DevEndpoint.

  • role_arn (RoleArn) –

    The IAM role for the DevEndpoint.

  • security_group_ids (Optional[StringList], default: None ) –

    Security group IDs for the security groups to be used by the new DevEndpoint.

  • subnet_id (Optional[GenericString], default: None ) –

    The subnet ID for the new DevEndpoint to use.

  • public_key (Optional[GenericString], default: None ) –

    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.

  • public_keys (Optional[PublicKeysList], default: None ) –

    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.

    If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the UpdateDevEndpoint API with the public key content in the deletePublicKeys attribute, and the list of new keys in the addPublicKeys attribute.

  • number_of_nodes (Optional[IntegerValue], default: None ) –

    The number of Glue Data Processing Units (DPUs) to allocate to this DevEndpoint.

  • worker_type (Optional[WorkerType], default: None ) –

    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.

    Known issue: when a development endpoint is created with the 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.

  • glue_version (Optional[GlueVersionString], default: None ) –

    Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints.

    For more information about the available 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.

  • number_of_workers (Optional[NullableInteger], default: None ) –

    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.

  • extra_python_libs_s3_path (Optional[GenericString], default: None ) –

    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.

    You can only use pure Python libraries with a DevEndpoint. Libraries that rely on C extensions, such as the pandas Python data analysis library, are not yet supported.

  • extra_jars_s3_path (Optional[GenericString], default: None ) –

    The path to one or more Java .jar files in an S3 bucket that should be loaded in your DevEndpoint.

  • security_configuration (Optional[NameString], default: None ) –

    The name of the SecurityConfiguration structure to be used with this DevEndpoint.

  • tags (Optional[TagsMap], default: None ) –

    The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint. For more information about tags in Glue, see Amazon Web Services Tags in Glue in the developer guide.

  • arguments (Optional[MapValue], default: None ) –

    A map of arguments used to configure the DevEndpoint.

Raises:

Source code in docs_src/capo_glue/_services/glue.py
def create_dev_endpoint(
    self,
    endpoint_name: "capo_glue.types.generic_string.GenericString",
    role_arn: "capo_glue.types.role_arn.RoleArn",
    *,
    config_overrides: Optional[GlueClientConfig] = None,
    security_group_ids: Optional["capo_glue.types.string_list.StringList"] = None,
    subnet_id: Optional["capo_glue.types.generic_string.GenericString"] = None,
    public_key: Optional["capo_glue.types.generic_string.GenericString"] = None,
    public_keys: Optional["capo_glue.types.public_keys_list.PublicKeysList"] = None,
    number_of_nodes: Optional["capo_glue.types.integer_value.IntegerValue"] = None,
    worker_type: Optional["capo_glue.types.worker_type.WorkerType"] = None,
    glue_version: Optional[
        "capo_glue.types.glue_version_string.GlueVersionString"
    ] = None,
    number_of_workers: Optional[
        "capo_glue.types.nullable_integer.NullableInteger"
    ] = None,
    extra_python_libs_s3_path: Optional[
        "capo_glue.types.generic_string.GenericString"
    ] = None,
    extra_jars_s3_path: Optional[
        "capo_glue.types.generic_string.GenericString"
    ] = None,
    security_configuration: Optional[
        "capo_glue.types.name_string.NameString"
    ] = None,
    tags: Optional["capo_glue.types.tags_map.TagsMap"] = None,
    arguments: Optional["capo_glue.types.map_value.MapValue"] = None,
) -> "capo_glue.types.create_dev_endpoint_response.CreateDevEndpointResponse":
    """<p>Creates a new development endpoint.</p>

    Args:
        endpoint_name: <p>The name to be assigned to the new <code>DevEndpoint</code>.</p>
        role_arn: <p>The IAM role for the <code>DevEndpoint</code>.</p>
        security_group_ids: <p>Security group IDs for the security groups to be used by the new <code>DevEndpoint</code>.</p>
        subnet_id: <p>The subnet ID for the new <code>DevEndpoint</code> to use.</p>
        public_key: <p>The public key to be used by this <code>DevEndpoint</code> for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.</p>
        public_keys: <p>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.</p> <note> <p>If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the <code>UpdateDevEndpoint</code> API with the public key content in the <code>deletePublicKeys</code> attribute, and the list of new keys in the <code>addPublicKeys</code> attribute.</p> </note>
        number_of_nodes: <p>The number of Glue Data Processing Units (DPUs) to allocate to this <code>DevEndpoint</code>.</p>
        worker_type: <p>The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.</p> <ul> <li> <p>For the <code>Standard</code> worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.</p> </li> <li> <p>For the <code>G.1X</code> 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.</p> </li> <li> <p>For the <code>G.2X</code> 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.</p> </li> </ul> <p>Known issue: when a development endpoint is created with the <code>G.2X</code> <code>WorkerType</code> configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. </p>
        glue_version: <p>Glue version determines the versions of Apache Spark and Python that Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. </p> <p>For more information about the available Glue versions and corresponding Spark and Python versions, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-job.html">Glue version</a> in the developer guide.</p> <p>Development endpoints that are created without specifying a Glue version default to Glue 0.9.</p> <p>You can specify a version of Python support for development endpoints by using the <code>Arguments</code> parameter in the <code>CreateDevEndpoint</code> or <code>UpdateDevEndpoint</code> APIs. If no arguments are provided, the version defaults to Python 2.</p>
        number_of_workers: <p>The number of workers of a defined <code>workerType</code> that are allocated to the development endpoint.</p> <p>The maximum number of workers you can define are 299 for <code>G.1X</code>, and 149 for <code>G.2X</code>. </p>
        extra_python_libs_s3_path: <p>The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your <code>DevEndpoint</code>. Multiple values must be complete paths separated by a comma.</p> <note> <p>You can only use pure Python libraries with a <code>DevEndpoint</code>. Libraries that rely on C extensions, such as the <a href="http://pandas.pydata.org/">pandas</a> Python data analysis library, are not yet supported.</p> </note>
        extra_jars_s3_path: <p>The path to one or more Java <code>.jar</code> files in an S3 bucket that should be loaded in your <code>DevEndpoint</code>.</p>
        security_configuration: <p>The name of the <code>SecurityConfiguration</code> structure to be used with this <code>DevEndpoint</code>.</p>
        tags: <p>The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint. For more information about tags in Glue, see <a href="https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html">Amazon Web Services Tags in Glue</a> in the developer guide.</p>
        arguments: <p>A map of arguments used to configure the <code>DevEndpoint</code>.</p>

    Raises:
        capo_glue.errors.access_denied_exception.AccessDeniedException: <p>Access to a resource was denied.</p>
        capo_glue.errors.already_exists_exception.AlreadyExistsException: <p>A resource to be created or added already exists.</p>
        capo_glue.errors.idempotent_parameter_mismatch_exception.IdempotentParameterMismatchException: <p>The same unique identifier was associated with two different records.</p>
        capo_glue.errors.internal_service_exception.InternalServiceException: <p>An internal service error occurred.</p>
        capo_glue.errors.invalid_input_exception.InvalidInputException: <p>The input provided was not valid.</p>
        capo_glue.errors.operation_timeout_exception.OperationTimeoutException: <p>The operation timed out.</p>
        capo_glue.errors.resource_number_limit_exceeded_exception.ResourceNumberLimitExceededException: <p>A resource numerical limit was exceeded.</p>
        capo_glue.errors.validation_exception.ValidationException: <p>A value could not be validated.</p>
        capo_glue.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_glue.types.create_dev_endpoint_request.CreateDevEndpointRequest]",
    ) -> OperationResponse[
        "capo_glue.types.create_dev_endpoint_response.CreateDevEndpointResponse"
    ]:
        import capo_glue._operations.aws_glue.create_dev_endpoint

        output, http_response = (
            capo_glue._operations.aws_glue.create_dev_endpoint.create_dev_endpoint(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateDevEndpoint")
    )
    input_: capo_glue.types.create_dev_endpoint_request.CreateDevEndpointRequest = {
        "endpoint_name": endpoint_name,
        "role_arn": role_arn,
    }
    if security_group_ids is not None:
        input_["security_group_ids"] = security_group_ids
    if subnet_id is not None:
        input_["subnet_id"] = subnet_id
    if public_key is not None:
        input_["public_key"] = public_key
    if public_keys is not None:
        input_["public_keys"] = public_keys
    if number_of_nodes is not None:
        input_["number_of_nodes"] = number_of_nodes
    if worker_type is not None:
        input_["worker_type"] = worker_type
    if glue_version is not None:
        input_["glue_version"] = glue_version
    if number_of_workers is not None:
        input_["number_of_workers"] = number_of_workers
    if extra_python_libs_s3_path is not None:
        input_["extra_python_libs_s3_path"] = extra_python_libs_s3_path
    if extra_jars_s3_path is not None:
        input_["extra_jars_s3_path"] = extra_jars_s3_path
    if security_configuration is not None:
        input_["security_configuration"] = security_configuration
    if tags is not None:
        input_["tags"] = tags
    if arguments is not None:
        input_["arguments"] = arguments

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output