在尝试使用 生成的 Docker Compose 文件设置 Prefect 0.14.15 以跨多个代理执行 Flow 时prefect server config,我惊讶地发现 Prefect 的服务器需要租户才能连接代理。我调查发现 Prefect 的文档提供了有关其create-tenant和list-tenants CLI 操作的使用语法的信息。然而,我广泛地浏览了链接页面 \xe2\x80\x94 以及 Prefect\ 的其余文档和随附教程 \xe2\x80\x94 中有关租户的任何提及,并且只发现了以下内容提及:
\n\n经过身份验证后,基于用户的 API 密钥可用于为用户所属的任何租户生成短期 JWT 身份验证令牌。这些 API 密钥继承用户在该租户中拥有的任何权限,从而允许完整的 API 访问。
\n
究竟什么是“Prefect 租户”?它似乎并不特定于 Prefect 的混合执行模型。那么,在完美流程执行之前和期间,它如何适应服务器、代理和客户端之间的交互呢?用户“属于”或“属于”租户是什么意思?要求它向服务器注册代理可以完成什么?
\n小智 7
租户在 Prefect Server 中的意义远不如 Prefect Cloud,但由于 Cloud 是基于开源服务器代码构建的,因此这个想法仍然存在。
租户是所有其他对象都存在于其中的顶级对象。租户中的用户无法访问另一个租户中的任何内容。在云中,严格执行此权限以限制用户的访问范围。在服务器中,您只需要一个租户即可开始使用系统,因为大多数对象将链接回租户。通常,如果您使用 Prefect CLI,系统会在启动过程中为您创建默认租户,prefect server start或者您可以在 Prefect Server Helm 图表中切换自动创建。
当代理在服务器上注册时,我们会将有关该代理的详细信息存储在数据库的“代理”表中。在服务器中,您的代理与默认租户关联。在 Cloud 中,您的代理与用于启动代理的 API 密钥所属的租户相关联。
当您运行流时,客户端必须与服务器通信以报告流的状态。与代理一样,此流程运行与租户相关联。在云中,这继承了代理的 API 密钥。在Server中,我们将继续使用默认租户。
太棒了;租户是用户所属的 Prefect Cloud Teams 的基础,用于授予权限。在 Perfect Server 中,您只需要拥有一个即可;创建它并忘记它(或使用我们为您创建它的标准工具)。