# 建立与AuraJobV2端点的连接
通过ai_lake.connect()建立与AuraJobV2端点的会话连接，后续所有数据操作均基于该连接进行。
#### 前提条件
- 已安装Aura DataFrame SDK。具体操作，请参见[Aura DataFrame SDK获取与安装](https://support.huaweicloud.com/sdkreference-aidatalake/aidatalake_09_0026.html)。
- 已创建AuraJobV2端点，并获取端点名称。具体操作，请参见[创建Aura引擎端点](https://support.huaweicloud.com/usermanual-aidatalake/aidatalake_01_0049.html)。
- 已创建LakeFormation实例，并在该实例中创建Catalog及数据库。具体操作，请参见[创建LakeFormation实例并规划元数据](https://support.huaweicloud.com/qs-lakeformation/lakeformation_02_0001.html)。
- 已创建并行文件系统。具体操作，请参见[创建并行文件系统](https://support.huaweicloud.com/usermanual-obs/obs_13_0002.html)。
- 代码中涉及os.getenv()中的参数已配置到环境变量。
- 运行时环境要求Python版本为3.11。
 
#### 示例
```
import os
import logging
from aura_frame.multimodal import ai_lake
con = ai_lake.connect(
    aura_endpoint=os.getenv("aura_endpoint"),         # AuraJobV2端点所在的终端节点（Endpoint）
    aura_endpoint_id=os.getenv("aura_endpoint_id"),    # AuraJobV2端点ID
    aura_endpoint_name=os.getenv("aura_endpoint_name"),# AuraJobV2端点名称
    aura_workspace_id=os.getenv("aura_workspace_id"),  # 工作空间ID
    lf_catalog_name=os.getenv("lf_catalog_name"),      # LakeFormation Catalog名称
    access_key=os.getenv("access_key"),                # 访问密钥ID（AK）
    secret_key=os.getenv("secret_key"),                # 访问密钥（SK）
    default_database="postgres",                       # LakeFormation数据库名称
    use_single_cn_mode=True,   # 是否开启单CN模式
    logging_level=logging.INFO # 设置日志级别
)
```
ai_lake.connect() 参数信息如下：
| 参数                  | 含义                                                                                                          | 类型   | 默认值         |
|:---|:---|:---|:---|
| aura_endpoint      | 指定连接的终端节点（Endpoint）信息，请参见[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/DataArtsFabric)。 | str   | None      |
| aura_endpoint_id    | 指定连接的AuraJobV2端点ID。                                                                                         | str   | None       |
| aura_endpoint_name | 指定连接的AuraJobV2端点名称。                                                                                        | str  | None       |
| aura_workspace_id   | 指定连接的AuraJobV2端点所在的工作空间ID。                                                                                 | str   | None      |
| lf_catalog_name     | 指定连接的LakeFormation Catalog名称。                                                                                | str  | None       |
| access_key          | 指定连接的访问密钥ID（AK）。                                                                                              | str   | None       |
| secret_key           | 指定连接的访问密钥（SK）。                                                                                             | str | None        |
| default_database   | 指定连接的默认数据库名称。                                                                                               | str   | None     |
| use_single_cn_mode | 表示是否开启单CN模式。                                                                                               | bool | False      |
| logging_level        | 日志级别。                                                                                                      | int  | logging.INFO |
   
以下示例展示建立连接并验证连通性的完整流程：
```
import os
import logging
from aura_frame.multimodal import ai_lake
con = ai_lake.connect(
    aura_endpoint=os.getenv("aura_endpoint"),           # AuraJobV2端点所在的终端节点（Endpoint），例如：
    aura_endpoint_id=os.getenv("aura_endpoint_id"),      # AuraJobV2端点ID
    aura_endpoint_name=os.getenv("aura_endpoint_name"),  # AuraJobV2端点名称
    aura_workspace_id=os.getenv("aura_workspace_id"),    # 工作空间ID
    lf_catalog_name=os.getenv("lf_catalog_name"),        # LakeFormation Catalog名称
    lf_instance_id=os.getenv("lf_instance_id"),          # LakeFormation实例ID
    project_id=os.getenv("project_id"),                  # 项目ID
    access_key=os.getenv("access_key"),                  # 访问密钥ID（AK）
    secret_key=os.getenv("secret_key"),                  # 访问密钥（SK）
    default_database="postgres",                         # 默认数据库
    use_single_cn_mode=True,                             # 是否开启单CN模式
    logging_level=logging.INFO,                          # 设置日志级别
)
try:
    with con.sql("select 1;") as cur:                    # 执行SQL验证连通性
        result = cur.fetchall()
    print("连接成功, select 1 结果:", result)
finally:
    con.close()                                           # 关闭连接
```
#### 相关文档
[Session APIs](https://support.huaweicloud.com/sdkreference-aidatalake/aidatalake_061_0135.html)
