:doc:`Glue <../../glue>` / Client / create_dev_endpoint

*******************
create_dev_endpoint
*******************



.. py:method:: Glue.Client.create_dev_endpoint(**kwargs)

  

  Creates a new development endpoint.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateDevEndpoint>`_  


  **Request Syntax**
  ::

    response = client.create_dev_endpoint(
        EndpointName='string',
        RoleArn='string',
        SecurityGroupIds=[
            'string',
        ],
        SubnetId='string',
        PublicKey='string',
        PublicKeys=[
            'string',
        ],
        NumberOfNodes=123,
        WorkerType='Standard'|'G.1X'|'G.2X'|'G.025X'|'G.4X'|'G.8X'|'Z.2X',
        GlueVersion='string',
        NumberOfWorkers=123,
        ExtraPythonLibsS3Path='string',
        ExtraJarsS3Path='string',
        SecurityConfiguration='string',
        Tags={
            'string': 'string'
        },
        Arguments={
            'string': 'string'
        }
    )
    
  :type EndpointName: string
  :param EndpointName: **[REQUIRED]** 

    The name to be assigned to the new ``DevEndpoint``.

    

  
  :type RoleArn: string
  :param RoleArn: **[REQUIRED]** 

    The IAM role for the ``DevEndpoint``.

    

  
  :type SecurityGroupIds: list
  :param SecurityGroupIds: 

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

    

  
    - *(string) --* 

    

  :type SubnetId: string
  :param SubnetId: 

    The subnet ID for the new ``DevEndpoint`` to use.

    

  
  :type PublicKey: string
  :param 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.

    

  
  :type PublicKeys: list
  :param 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.

     

    .. note::

      

      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.

      

    

  
    - *(string) --* 

    

  :type NumberOfNodes: integer
  :param NumberOfNodes: 

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

    

  
  :type WorkerType: string
  :param 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.
    

     

    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.

    

  
  :type GlueVersion: string
  :param GlueVersion: 

    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 <https://docs.aws.amazon.com/glue/latest/dg/add-job.html>`__ 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.

    

  
  :type NumberOfWorkers: integer
  :param 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``.

    

  
  :type ExtraPythonLibsS3Path: string
  :param 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.

     

    .. note::

      

      You can only use pure Python libraries with a ``DevEndpoint``. Libraries that rely on C extensions, such as the `pandas <http://pandas.pydata.org/>`__ Python data analysis library, are not yet supported.

      

    

  
  :type ExtraJarsS3Path: string
  :param ExtraJarsS3Path: 

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

    

  
  :type SecurityConfiguration: string
  :param SecurityConfiguration: 

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

    

  
  :type Tags: dict
  :param Tags: 

    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 <https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html>`__ in the developer guide.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type Arguments: dict
  :param Arguments: 

    A map of arguments used to configure the ``DevEndpoint``.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'EndpointName': 'string',
          'Status': 'string',
          'SecurityGroupIds': [
              'string',
          ],
          'SubnetId': 'string',
          'RoleArn': 'string',
          'YarnEndpointAddress': 'string',
          'ZeppelinRemoteSparkInterpreterPort': 123,
          'NumberOfNodes': 123,
          'WorkerType': 'Standard'|'G.1X'|'G.2X'|'G.025X'|'G.4X'|'G.8X'|'Z.2X',
          'GlueVersion': 'string',
          'NumberOfWorkers': 123,
          'AvailabilityZone': 'string',
          'VpcId': 'string',
          'ExtraPythonLibsS3Path': 'string',
          'ExtraJarsS3Path': 'string',
          'FailureReason': 'string',
          'SecurityConfiguration': 'string',
          'CreatedTimestamp': datetime(2015, 1, 1),
          'Arguments': {
              'string': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **EndpointName** *(string) --* 

        The name assigned to the new ``DevEndpoint``.

        
      

      - **Status** *(string) --* 

        The current status of the new ``DevEndpoint``.

        
      

      - **SecurityGroupIds** *(list) --* 

        The security groups assigned to the new ``DevEndpoint``.

        
        

        - *(string) --* 
    
      

      - **SubnetId** *(string) --* 

        The subnet ID assigned to the new ``DevEndpoint``.

        
      

      - **RoleArn** *(string) --* 

        The Amazon Resource Name (ARN) of the role assigned to the new ``DevEndpoint``.

        
      

      - **YarnEndpointAddress** *(string) --* 

        The address of the YARN endpoint used by this ``DevEndpoint``.

        
      

      - **ZeppelinRemoteSparkInterpreterPort** *(integer) --* 

        The Apache Zeppelin port for the remote Apache Spark interpreter.

        
      

      - **NumberOfNodes** *(integer) --* 

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

        
      

      - **WorkerType** *(string) --* 

        The type of predefined worker that is allocated to the development endpoint. May be a value of Standard, G.1X, or G.2X.

        
      

      - **GlueVersion** *(string) --* 

        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 <https://docs.aws.amazon.com/glue/latest/dg/add-job.html>`__ in the developer guide.

        
      

      - **NumberOfWorkers** *(integer) --* 

        The number of workers of a defined ``workerType`` that are allocated to the development endpoint.

        
      

      - **AvailabilityZone** *(string) --* 

        The Amazon Web Services Availability Zone where this ``DevEndpoint`` is located.

        
      

      - **VpcId** *(string) --* 

        The ID of the virtual private cloud (VPC) used by this ``DevEndpoint``.

        
      

      - **ExtraPythonLibsS3Path** *(string) --* 

        The paths to one or more Python libraries in an S3 bucket that will be loaded in your ``DevEndpoint``.

        
      

      - **ExtraJarsS3Path** *(string) --* 

        Path to one or more Java ``.jar`` files in an S3 bucket that will be loaded in your ``DevEndpoint``.

        
      

      - **FailureReason** *(string) --* 

        The reason for a current failure in this ``DevEndpoint``.

        
      

      - **SecurityConfiguration** *(string) --* 

        The name of the ``SecurityConfiguration`` structure being used with this ``DevEndpoint``.

        
      

      - **CreatedTimestamp** *(datetime) --* 

        The point in time at which this ``DevEndpoint`` was created.

        
      

      - **Arguments** *(dict) --* 

        The map of arguments used to configure this ``DevEndpoint``.

         

        Valid arguments are:

         

        
        * ``"--enable-glue-datacatalog": ""``
        

         

        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.

        
        

        - *(string) --* 
          

          - *(string) --* 
    
  
  
  **Exceptions**
  
  *   :py:class:`Glue.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`Glue.Client.exceptions.AlreadyExistsException`

  
  *   :py:class:`Glue.Client.exceptions.IdempotentParameterMismatchException`

  
  *   :py:class:`Glue.Client.exceptions.InternalServiceException`

  
  *   :py:class:`Glue.Client.exceptions.OperationTimeoutException`

  
  *   :py:class:`Glue.Client.exceptions.InvalidInputException`

  
  *   :py:class:`Glue.Client.exceptions.ValidationException`

  
  *   :py:class:`Glue.Client.exceptions.ResourceNumberLimitExceededException`

  