Microsoft Azure Blob Storage 连接¶
Microsoft Azure Blob Storage 连接类型启用 Azure Blob Storage 集成。
验证 Azure Blob Storage¶
使用 Airflow 连接到 Azure Blob Storage 有七种方式。
使用 令牌凭证,即将特定凭证(client_id、secret、tenant)和订阅 ID 添加到 Airflow 连接中。
使用 Azure 共享密钥凭证,即将共享密钥凭据添加到 Airflow 连接的
shared_access_key。使用 SAS 令牌,即在 Airflow 连接中将配置键添加到
sas_token。使用 Connection String(即在 Airflow 连接中将连接字符串添加到
connection_string)。通过在 Airflow 连接的 extra 字段中设置
account_key来使用账户密钥。通过设置
managed_identity_client_id、workload_identity_tenant_id使用托管身份(在钩子中,它使用带有这些参数的 DefaultAzureCredential)。回退至 DefaultAzureCredential。该机制会尝试多种身份验证选项:受管系统标识、环境变量、通过 Azure CLI 的身份验证等。
一次只能使用一种授权方式。如果需要管理多个凭证或密钥,则应配置多个连接。
默认连接 ID¶
所有与 Microsoft Azure Blob Storage 相关的 Hook 和 Operator 默认使用 wasb_default。
配置连接¶
- 登录(可选)
指定用于 Azure Blob Storage 的登录名。对 Active Directory(令牌)身份验证(作为服务主体凭证)是必需的。如果已指定主机(账户 URL),则对其它情况为可选。也可以不填,以回退到 DefaultAzureCredential。
- 密码(可选)
指定用于 Azure Blob Storage 的密码。适用于 Active Directory(令牌凭证)和共享密钥身份验证。也可以不填,以回退到 DefaultAzureCredential。
- 主机(可选)
指定 Azure Blob Storage 的账户 URL。对 Active Directory(令牌)和 DefaultAzureCredential 身份验证(作为服务主体凭证)是必需的。如果已指定登录名(账户名称),则对其它情况为可选。
- Blob 存储连接字符串(可选)
用于连接字符串身份验证的连接字符串。若不提供,将回退到 DefaultAzureCredential。
- Blob 存储共享访问密钥(可选)
指定共享访问密钥。仅在使用共享访问密钥身份验证时需要。若不提供,将回退到 DefaultAzureCredential。
- SAS 令牌(可选)
用于 SAS 令牌身份验证的 SAS 令牌。若不提供,将回退到 DefaultAzureCredential。
- 租户 Id(Active Directory 身份验证)(可选)
指定要使用的租户。仅在 Active Directory(令牌)身份验证时需要。若不提供,将回退到 DefaultAzureCredential。
- 额外(可选)
指定可在 Azure 连接中使用的额外参数(JSON 字典)。以下参数均为可选项
account_key:指定用于 Azure Blob Storage 身份验证的账户密钥。此项会在回退到 DefaultAzureCredential 之前进行检查。client_secret_auth_config:使用 ClientSecretCredential 作为服务主体进行身份验证时需要传递的额外配置。也可以不填,以回退到 DefaultAzureCredential。managed_identity_client_id:用户分配的托管标识的客户端 ID。如果同时提供 workload_identity_tenant_id,它们将一起传递给DefaultAzureCredential。workload_identity_tenant_id:应用程序所属的 Microsoft Entra 租户 ID,也称为“目录” ID。如果同时提供 managed_identity_client_id,它们将一起传递给DefaultAzureCredential。
在环境变量中指定连接时,应使用 URI 语法。
请注意,URI 的所有组件都应进行 URL 编码。
例如使用令牌凭证进行连接
export AIRFLOW_CONN_WASB_DEFAULT='wasb://blob%20username:blob%20password@myblob.com?tenant_id=tenant+id'