如何通过client_id和client_secret而非配置文件初始化looker_sdk
无配置文件初始化looker_sdk实现方案
looker_sdk 支持直接传入自定义配置对象完成初始化,不需要依赖本地ini配置文件,实现步骤如下:
核心实现逻辑
你不需要读取本地配置文件,只需要提前从Azure Key Vault中获取到client_id、client_secret以及你的Looker实例地址base_url三个核心参数,通过ApiSettings构造配置对象后传入初始化方法即可。
完整代码示例
import looker_sdk from looker_sdk import ApiSettings from azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient # -------------------------- # 第一步:从Azure Key Vault读取凭据 # -------------------------- kv_url = "https://<你的KeyVault名称>.vault.azure.net/" secret_client = SecretClient( vault_url=kv_url, credential=DefaultAzureCredential() # 会自动读取当前环境的Azure身份凭据,不需要额外硬编码AKV密钥 ) looker_client_id = secret_client.get_secret("looker-client-id").value looker_client_secret = secret_client.get_secret("looker-client-secret").value # -------------------------- # 第二步:构造配置对象并初始化SDK # -------------------------- settings = ApiSettings( base_url="https://<你的Looker实例地址>:19999", # Looker API默认端口为19999,按实际情况修改 client_id=looker_client_id, client_secret=looker_client_secret, verify_ssl=True, # 生产环境建议保持开启,测试环境如果有自签名证书可以设为False timeout=120 # 可选,自定义请求超时时间 ) # 初始化3.1版本API的SDK,如需使用4.0版本API替换为init40即可 sdk = looker_sdk.init31(settings=settings)
注意事项
- 上述示例中使用
DefaultAzureCredential读取AKV凭据,支持本地开发环境(读取VSCode/az cli登录凭据)、Azure部署环境(读取托管身份凭据),无需额外硬编码AKV的访问密钥 - 原ini文件中的其他配置项(比如
api_version、transport_options等)都可以作为参数传入ApiSettings构造方法,和ini配置的参数完全等价
内容的提问来源于stack exchange,提问作者AaronLi
相关产品推荐
相关产品推荐

