请求Dataiku API部署自定义Python函数时DKU_CURRENT_PROJECT_KEY未指定错误的分步解决指南
请求Dataiku API部署自定义Python函数时DKU_CURRENT_PROJECT_KEY未指定错误的分步解决指南
我明白你遇到的这个错误——当在Dataiku API Designer里部署Python函数服务时,因为运行环境没有关联到具体项目,导致调用Folder或Dataset时找不到上下文。下面是一步步解决的详细指南,帮你搞定这个问题:
1. 先找到你的Dataiku项目Key
首先你需要明确自己项目的唯一Key,操作方式:
- 打开你的Dataiku项目,进入项目主页
- 右上角的项目名称旁边,或者进入项目设置 > 常规标签页,就能看到项目Key(通常是一串大写字母+数字的组合,比如
MY_RECOMMENDER_PROJECT) - 把这个Key记下来,后面会用到
2. 给API服务添加环境变量
API服务的运行环境默认没有设置项目Key,我们手动添加这个环境变量:
- 进入API Designer,找到你创建的那个Python函数服务
- 切换到**Settings(设置)**标签页
- 找到**Environment variables(环境变量)**区域,点击"Add variable"
- 填写:
- 变量名:
DKU_CURRENT_PROJECT_KEY - 变量值:你刚才记录的项目Key
- 变量名:
- 保存设置
3. 优化代码(可选但更稳妥)
即使设置了环境变量,直接通过名称调用Folder/Dataset偶尔还是会有上下文问题,建议在代码里明确指定项目Key,这样更可靠:
修改你的load_data函数,在初始化Folder和Dataset时添加项目Key参数:
def load_data(): project_key = "你的项目Key" # 替换成你实际的项目Key folder_name="Recommender" # 明确指定项目Key初始化Managed Folder managed_folder = dataiku.Folder(folder_name, project_key=project_key) # Cosine Similarity Matrix laden with managed_folder.get_download_stream("cosine_similarity.pkl") as stream: cosine_sim = pickle.load(stream) # 明确指定项目Key初始化Dataset sachnummer = dataiku.Dataset("prep", project_key=project_key) df = sachnummer.get_dataframe() df.drop(['1', '2'], axis=1, inplace=True) return cosine_sim, df
4. 检查API服务的权限
确保API服务有访问项目、Folder和Dataset的权限:
- 在API服务的**Permissions(权限)**标签页
- 点击"Add group/user",给服务分配项目的查看者或更高级的权限(至少需要能读取Folder和Dataset)
- 保存权限设置
5. 重新测试API服务
回到API服务的**Test(测试)**标签页,输入测试字符串重新运行请求,这个DKU_CURRENT_PROJECT_KEY的错误应该就会消失了。
额外注意事项
- 请确保代码里的Folder名称
Recommender、Dataset名称prep和Dataiku里的实际名称完全匹配(Dataiku对名称大小写敏感) - 如果还是有问题,可以检查Managed Folder里的
cosine_similarity.pkl文件是否存在,路径是否正确
备注:内容来源于stack exchange,提问作者Veli
相关产品推荐
相关产品推荐

