Azure FunctionApps查询异常:Scala应用返回空列表求助
Azure SDK for Scala 查询FunctionApp返回空列表问题排查
可能的问题点及排查步骤:
资源范围不匹配
你CLI里用了az functionapp list --resource-group <my subscription>,这里要注意--resource-group参数应该填资源组名称,不是订阅ID。如果CLI是指定了正确资源组才查到结果,那SDK默认的list()方法是查询当前订阅下所有资源组的FunctionApp,可能你的SDK初始化时默认订阅不是目标订阅,或者需要直接指定资源组查询:val test = azure.functionApps().listByResourceGroup("<你的资源组名称>").asScala.toList试试这个方法能不能返回结果。
SDK/API版本差异
不同版本的Azure SDK for Scala对应不同的Azure REST API版本,旧版本可能存在查询逻辑的兼容问题。检查你依赖的SDK版本,尽量升级到最新稳定版,或者在调用时显式指定API版本(如果SDK支持的话)。身份上下文不一致
确认Scala应用使用的身份和CLI登录的身份是同一个:比如CLI用的是本地用户账户,而Scala用的是服务主体(Service Principal),那要检查服务主体的权限是否覆盖了FunctionApp所在的资源组/订阅。可以在Azure门户的资源组权限页,确认该身份有Reader或Contributor权限,也可以用该身份登录CLI执行az functionapp list验证权限是否生效。异步调用未正确处理
部分Azure SDK的方法是异步执行的,直接调用asScala.toList可能还没完成查询就返回空列表。可以尝试用异步等待的方式处理,比如:import scala.concurrent.Await import scala.concurrent.duration._ val futureList = azure.functionApps().list().asScala.toList.toFuture val test = Await.result(futureList, 10.seconds)确保等待足够时间让查询完成。
内容的提问来源于stack exchange,提问作者Joe Devilla
相关产品推荐
相关产品推荐

