kaxil commented on a change in pull request #6863: [AIRFLOW-XXX] add docs 
showing usage of `Connection.get_uri`
URL: https://github.com/apache/airflow/pull/6863#discussion_r360819453
 
 

 ##########
 File path: docs/howto/connection/index.rst
 ##########
 @@ -61,29 +59,167 @@ to the connection you wish to edit in the connection list.
 Modify the connection properties and click the ``Save`` button to save your
 changes.
 
-Creating a Connection with Environment Variables
+Storing a Connection in Environment Variables
 ------------------------------------------------
 
-Connections in Airflow pipelines can be created using environment variables.
-The environment variable needs to have a prefix of ``AIRFLOW_CONN_`` for
-Airflow with the value in a URI format to use the connection properly.
+The environment variable naming convention is ``AIRFLOW_CONN_<conn_id>``, all 
uppercase.
+
+So if your connection id is ``my_prod_db`` then the variable name should be 
``AIRFLOW_CONN_MY_PROD_DB``.
+
+.. note::
+
+    There is only one underscore surrounding ``CONN``.  This is in contrast 
with the way ``airflow.cfg``
+    parameters are stored, where two underscores surround the config section 
name.
+
+The value of this environment variable must use airflow's URI format for 
connections.  See the section
+:ref:`Generating a Connection URI <generating_connection_uri>` for more 
details.
+
+Using .bashrc (or similar)
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If storing the environment variable in something like ``~/.bashrc``, you would 
add it ike so:
+
+.. code-block:: bash
+
+    export 
AIRFLOW_CONN_MY_PROD_DATABASE='my-conn-type://login:password@host:port/schema?param1=val1&param2=val2'
+
+Using docker .env
+^^^^^^^^^^^^^^^^^
+
+If using with a docker ``.env`` file, you may need to remove the single quotes.
+
+.. code-block::
+
+    
AIRFLOW_CONN_MY_PROD_DATABASE=my-conn-type://login:password@host:port/schema?param1=val1&param2=val2
+
+
+Creating a Connection from the CLI
+----------------------------------
+
+You may add a connection to the database from the CLI.
+
+Obtain the URI for your connection (see :ref:`Generating a Connection URI 
<generating_connection_uri>`).
+
+Then add connection like so:
+
+.. code-block:: bash
+
+    airflow connections add --conn_id 'my_prod_db' --conn_uri 
'my-conn-type://login:password@host:port/schema?param1=val1&param2=val2'
+
+Alternatively you may specify each parameter individually:
+
+.. code-block:: bash
+
+    airflow connections add \
+        --conn_id 'my_prod_db' \
+        --login 'login' \
+        --password 'password' \
+        ...
+
+
+Connection URI format
+---------------------
+
+In general, Airflow's URI format is like so:
+
+.. code-block::
+
+    
my-conn-type://my-login:my-password@my-host:5432/my-schema?param1=val1&param2=val2
 
-When referencing the connection in the Airflow pipeline, the ``conn_id``
-should be the name of the variable without the prefix. For example, if the
-``conn_id`` is named ``postgres_master`` the environment variable should be
-named ``AIRFLOW_CONN_POSTGRES_MASTER`` (note that the environment variable
-must be all uppercase).
+.. note::
 
-Airflow assumes the value returned from the environment variable to be in a URI
-format (e.g. ``postgres://user:password@localhost:5432/master`` or
-``s3://accesskey:secretkey@S3``). The underscore character is not allowed
-in the scheme part of URI, so it must be changed to a hyphen character
-(e.g. ``google-compute-platform`` if ``conn_type`` is 
``google_compute_platform``).
-Query parameters are parsed to one-dimensional dict and then used to fill 
extra.
+    The params param1 and param2 are just examples; you may supply arbitrary 
urlencoded json-serializable data there.
 
 Review comment:
   ```suggestion
       The params ``param1`` and ``param2`` are just examples; you may supply 
arbitrary urlencoded json-serializable data there.
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to