【问题标题】:Prefect Server: What is the role of a Tenant?Prefect Server:租户的角色是什么?
【发布时间】:2021-07-27 05:48:02
【问题描述】:

在尝试使用prefect server config 生成的 Docker Compose 文件为跨多个代理的流执行设置 Prefect 0.14.15 时,我惊讶地发现 Prefect 的服务器需要租户才能连接代理。我调查发现 Prefect 的文档提供了有关其 create-tenantlist-tenants CLI 操作的使用语法的信息。但是,我已经广泛浏览了链接页面——以及 Prefect 的其余文档和随附的教程——是否提到了租户,只发现 the following 简要提及:

经过身份验证后,基于用户的 API 密钥可用于为用户所属的任何租户生成短期 JWT 身份验证令牌。这些 API 密钥继承用户在该租户中拥有的任何权限,从而允许完整的 API 访问。

Prefect 的租户到底是什么?它似乎并不特定于 Prefect 的Hybrid Execution model。那么,在 Prefect Flow 执行之前和执行期间,它如何适应服务器、代理和客户端之间的交互?说用户“属于”或“属于”租户是什么意思?以及要求它向服务器注册一个代理来完成什么?

【问题讨论】:

  • 请注意这不是代码编写或辅导服务。我们可以帮助解决具体的技术问题,而不是对代码或建议的开放式请求。请编辑您的问题以显示您迄今为止尝试过的内容,以及您需要帮助的具体问题。请参阅How To Ask a Good Question 页面,详细了解如何最好地帮助我们。

标签: python prefect


【解决方案1】:

租户在 Prefect Server 中的意义远小于 Prefect Cloud,但由于 Cloud 是基于开源 Server 代码构建的,所以这个想法仍然存在。

租户是存在所有其他对象的顶级对象。租户中的用户无法访问另一个租户中的任何内容。在 Cloud 中,严格执行此权限以限制用户的访问范围。在 Server 中,您只需要一个租户即可开始使用系统,因为大多数对象都将链接回一个租户。如果您使用 Prefect CLI prefect server start,通常会在启动期间为您创建一个默认租户,或者您可以在 Prefect Server Helm 图表中切换自动创建。

当代理向服务器注册时,我们会将有关该代理的详细信息存储在数据库的“代理”表中。在 Server 中,您的代理与默认租户相关联。在 Cloud 中,您的代理与用于启动代理的 API 密钥所属的租户相关联。

当您运行流程时,客户端必须与服务器通信以报告流程的状态。与代理一样,此流程运行与租户相关联。在 Cloud 中,它继承了代理的 API Key。在Server中,我们将继续使用默认租户。

tldr;租户是用户所属的 Prefect Cloud Teams 的基础,用于授予权限。在 Prefect Server 中,您只需要拥有一个即可;创建它并忘记它(或使用我们为您创建它的标准工具)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 2014-02-10
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多