跳到内容

这个包提供了一个CLI(命令行界面),用于与RStudio Connect交互并部署到RStudio Connect。英格兰vs伊朗让球这也被rsconnect-jupyter包通过Jupyter web控制台部署Jupyter笔记本。RStudio Connect支持的许多类型卡塔尔世界杯欧洲预选赛赛程表的内容都可以通过这个包部署英格兰vs伊朗让球,包括wsgi风格的api、Dash、Streamlit和Bokeh应用程序。

CLI不直接支持的内容类型也可以部署,如果它们包含一个卡塔尔世界杯欧洲预选赛赛程表已准备好的manifest.json文件。看到“部署R或其他内容”获取详细信息。

将Python内容部署到RStudio Connect英格兰vs伊朗让球英格兰vs伊朗让球RStudio连接管理指南章节标题为Python版本匹配

安装
pip安装rsconnect-python

您也可以直接从存储库克隆中构建和安装轮子:

git克隆https://github.com/rstud英格兰vs伊朗让球io/rsconnect-python.gitcdRsconnect-python PIP install pipenv make deps dist PIP install ./dist/rsconnect_python-*.whl

使用rsconnect命令行
rsconnect部署笔记本——服务器https://connect.example.org: 3939——api密匙my-api-keymy-notebook.ipynb

请注意

这里的示例使用较长的命令行选项,但也有较短的选项(- s- k等)也可用。运行Rsconnect部署笔记本——帮助获取详细信息。

设置rsconnectCLI自动完成bash
# ~ / . bashrceval$ (_RSCONNECT_COMPLETErsconnect

zsh
# ~ / . zshrceval$ (_RSCONNECT_COMPLETEsource_zsh rsconnect

如果你得到命令未找到:compdef,您需要将以下行添加到您的. zshrc在完成设置之前:

# ~ / . zshrcautolload -Uz compinit compinit

管理服务器信息

重要的

保存的一项信息是用于使用RStudio Connect进行身份验证的API密钥。英格兰vs伊朗让球尽管保存此信息的文件被标记为仅由所有者访问,但重要的是要记住,密钥以纯文本形式出现在文件中,因此必须小心防止任何未经授权的对服务器信息文件的访问。

TLS支卡塔尔世界杯欧洲预选赛赛程表持和RStudio连接英格兰vs伊朗让球

请注意

当为服务器保存证书信息时,读取指定的文件内容都保存在服务器的昵称下。如果更改了CA文件的内容,则需要再次添加服务器信息。

看到网络选项节了解有关这些选项的详细信息。

记住服务器信息
rsconnect添加——api密匙my-api-key——服务器https://connect.example.org: 3939——名字myserver

请注意

rsconnectCLI将验证服务URL和API密钥是否有效。如果发现其中一个不存在,则不会保存任何信息。

如果服务器的任何访问信息发生更改,只需重新运行添加使用新信息命令,它将取代原来的信息。

一旦服务器的信息被保存,你可以通过它的昵称来引用它:

Rsconnect部署笔记本——命名我的服务器my-notebook.ipynb

如果只保存了一个服务器的信息,这也可以工作:

Rsconnect部署my-notebook.ipynb

清单服务器信息
rsconnect列表

删除服务器信息
Rsconnect remove——name myserver

可通过其别名(——名字)或网址(——服务器).

验证服务器信息
Rsconnect详细信息—服务器https://connect.example.org:3939

在这种形式,rsconnect只会告诉你所给出的URL是否指向一个正在运行的RStudio Connect实例。英格兰vs伊朗让球如果你包含一个有效的API键:

Rsconnect详细信息——服务器https://connect.example.org:3939——api-key my-api-key

该工具将提供RStudio Connect的版本(如果服务器被配置为泄漏该英格兰vs伊朗让球信息)和环境信息,包括服务器上安装的Python版本。

也可以使用昵称细节命令,以验证存储的信息是否仍然有效。

笔记本部署选项包括额外的文件
Rsconnect部署my-notebook.ipynbdata.csv

包的依赖关系
Rsconnect deploy notebook——python /path/to/python my-notebook.ipynb

您可以通过运行看到将包含的包列表皮普——格式=冻结名单确保你使用的Python和运行Jupyter Notebook的Python是一样的:

/path/to/python -m PIP list——format冻结

静态(快照)部署
Rsconnect部署my-notebook.ipynb

为未来部署创建清单
Rsconnect写清单笔记本my-notebook.ipynb

请注意

不能为静态(预呈现)笔记本创建清单。

API /应用程序部署选项包括额外的文件
Rsconnect部署API flask-api/ data.csv

由于部署API或应用程序是从目录级别开始的,因此有时该目录子树下的一些文件不应包含在部署或清单中。使用——排除选项指定要排除的文件或目录。

rsconnect deploy dash—exclude dash-app-venv—exclude TODO.txt dash-app/

你可以通过命名来排除一个目录:

Rsconnect deploy dash——exclude dash-app-venv——exclude output/ dash-app/

——排除选项可以重复,并且可以包含一个glob模式。您应该始终引用glob模式,以便将其传递给rsconnect而不是让shell扩展它。如果一个文件被指定为一个额外的文件,并且它也匹配一个排除模式,那么该文件仍然会包含在部署中(也就是说,额外的文件优先)。

Rsconnect deploy dash-app-venv -exclude " *.txt " dash-app/

下面是一个额外文件优先的例子:

Rsconnect部署破折号——排除“*.csv”破折号-app/ important_data.csv

默认情况下,有些目录被排除在外,以防止不需要或可能影响部署过程的文件绑定和上传:

.Rproj。User .env .git .svn .venv __pycache__ env packrat renv rsconnect-python rsconnect venv

任何看起来是Python虚拟环境的目录(通过包含bin / python)也将被排除在外。

包的依赖关系
Rsconnect deploy API——python /path/to/python my-api/

您可以通过运行看到将包含的包列表皮普——格式=冻结名单确保你使用的Python和你用来运行你的API或应用程序是一样的:

/path/to/python -m PIP list——format冻结

为未来部署创建清单
Rsconnect写清单API my-api/

部署R或其他内容
Rsconnect deploy manifest /path/to/manifest.json

请注意

在本例中,现有内容按原样部署。Python环境检查和笔记本预渲染(如果需要的话)假设已经完成并在清单中表示。

的参数部署清单也可以是一个目录,只要该目录包含manifest.json文件。

如果你有R内容但没有amanifest.json文件,您可以使用RStudio IDE来创建英格兰vs伊朗让球清单。参见帮助rsconnect: writeManifestR功能:

install.packages“rsconnect”图书馆rsconnect?rsconnect::writeManifest

所有部署类型的选项标题
配置My -notebook.ipynb

当使用rsconnect部署apirsconnect部署fastapirsconnect部署破折号rsconnect部署streamlit,或rsconnect部署散景,标题来源于包含API或应用程序的目录。

当使用rsconnect部署清单,标题派生自清单中引用的主文件名。

环境变量
打印操作系统环境“myvar#”])

您可以设置的值myvar#当您的代码在RStudio Connect中运行时,将使用英格兰vs伊朗让球- e /——环境选择:

Rsconnect部署笔记本-环境myvar#“hello world”notebook.ipynb

为了避免在命令行上暴露敏感值,可以指定一个不带值的变量。在本例中,它将使用来自运行rsconnect-python的环境的值:

出口SECRET_KEY12345连接部署记事本—环境SECRET_KEY记事本

如果您在更新现有部署时指定环境变量,则将为您提供的变量设置新值。其他变量保持不变。如果不指定任何变量,则所有现有变量将保持不变。

在上传和部署内容包之前,在内容项上设置环境变量。如果部署失败,新的环境变量仍然会生效。

网络选项TLS / SSL证书
Rsconnect详细信息——api-key my-api-key——server https://connect.example.org:3939

如果此操作失败并出现TLS证书验证错误,那么您有两种选择。

  • 为RStudio Connect服务器提供位于签名链根的根CA证书。英格兰vs伊朗让球这将使rsconnect以安全地验证服务器的TLS证书。

    rsconnect细节——api密匙my-api-key——服务器https://connect.example.org: 3939/ / certificate.pem——cacert /路径
  • 英格兰vs伊朗让球RStudio Connect处于“不安全模式”。这将禁用TLS证书验证,从而导致连接不太安全。

    rsconnect添加——api密匙my-api-key——服务器https://connect.example.org: 3939——不安全

一旦确定了允许您成功使用RStudio Connect实例的选项组合,您可能会希望使用英格兰vs伊朗让球添加命令有rsconnect记住这些选项,允许您只使用昵称。

更新部署强制新部署
Rsconnect部署dash——new my-app/

更新不同的部署
Rsconnect部署笔记本——app-id123456my-notebook.ipynb

您必须是目标部署的所有者,或者是具有更改内容权限的合作者。内容类型(静态笔记本、带有源代码的笔记本、API或应用程序)必须与现有部署相匹配。

请注意

更新部署不需要确认。如果您不小心这样做了,请使用RStudio Connect仪表板中的“源版本”对话框来激活以前的版本并删除错误的版本。英格兰vs伊朗让球

查找应用ID显示部署信息部分。

如果内容被部署到其他地方或者信息不能返回正确的App ID,但是你可以在RStudio Connect上打开内容,找到内容并在浏览器中打开它。英格兰vs伊朗让球URL在您的浏览器的位置栏将包含# /应用程序/某某在哪里NNN是你的App ID。应用程序的GUID标识符可以在信息选项卡用于RStudio Connect UI中的内容英格兰vs伊朗让球。

显示部署信息
rsconnect信息my-notebook.ipynb

如果已部署到多个服务器,则将显示每个服务器的最新部署信息。该命令还显示存储部署数据的文件的路径。

存储的信息文件部署数据 生成的rsconnect-python 1.10.0

隐藏木星笔记本输入代码单元格
Rsconnect部署笔记本\——服务器https://connect.example.org:3939 \——api-key my-api-key \——hide-all-input \ my-notebook.ipynb

要有选择地隐藏Jupyter笔记本中的输入单元格,用户需要遵循两个步骤:用'hide_input'标记单元格2。然后通过cli传递'——hide-tagged-input'标志:

Rsconnect部署笔记本\——服务器https://connect.example.org:3939 \——api-key my-api-key \——hide- tags -input \ my-notebook.ipynb

默认情况下,rsconnect-python不安装与Jupyter笔记本相关的依赖。这些依赖是通过rsconnect-jupyter安装的。当用户单独使用rsconnect-python中的隐藏输入特性而不使用rsconnect-jupyter时,他/她需要安装以下包依赖:

笔记本nbformat nbconvert > = 5.6.1

内容的子命令

请注意

rsconnect内容CLI子命令旨在易于编写脚本。默认输出格式为JSON因此,结果可以很容易地管道到其他命令行实用程序,如金桥进行进一步的后处理。

用法:rsconnect内容选项]命令arg游戏]...与RStudio Conne英格兰vs伊朗让球ct交互content API。选项:显示此消息并退出。命令:在RStudio Connect上构建内容。英格兰vs伊朗让球描述RStudio Connect上的一个内容项。英格兰vs伊朗让球下载一个内容项目年代包。搜索搜索RStudio Con英格兰vs伊朗让球nect上的内容。

内容建设

请注意

rsconnect内容构建子命令需要RStudio Connect英格兰vs伊朗让球 >= 2021.11.1

英格兰vs伊朗让球RStudio Connect会缓存配置的R和Python包服务器。DataDir.在某些情况下(下面的例子),这些包缓存可能会过时,需要重新构建。当RStudio Connect用户访问内容时,会自动进行刷新。英格兰vs伊朗让球您可能希望在访问某些内容之前刷新它,因为它具有高优先级或不经常访问(API内容、电子邮件报告)。方法预先构建特定的内容项是可能的rsconnect内容构建子命令。通过这种方式,用户在下次访问内容时不必支付构建成本。

以下是一些可能需要执行内容构建的常见场景:

  • 操作系统升级
  • GCC或libc库的更改
  • Python或R安装的更改
  • 从源包存储库切换到二进制包存储库,或者反之亦然

请注意

内容建设命令是非破坏性的,这意味着它不会在构建之前清除现有的packrat/python包缓存。如果您有一个现有的缓存,那么应该在开始内容构建之前清除它。看到迁移文档获取详细信息。

请注意

你可以使用rsconnect内容搜索子命令,以帮助识别要构建的高优先级内容项。

使用方法:rsconnect content build [OPTIONS] COMMAND [ARGS]…在RStudio Connect上英格兰vs伊朗让球构建内容。选项:——help显示此消息并退出。命令:为构建添加标记内容项。使用“构建运行”来调用Connect服务器上的构建。获取内容项的构建历史。为内容构建打印日志。ls列出给定连接服务器上正在为构建而跟踪的内容项。从跟踪构建的内容列表中删除一个内容项。使用“build ls”查看跟踪的内容。 run Start building content on a given Connect server.

要构建特定的内容项,首先添加它被“跟踪”到使用其GUID构建的内容列表中。

请注意

“跟踪”内容项的元数据存储在一个名为rsconnect-build它将在您当前的工作目录中自动创建。您可以设置环境变量CONNECT_CONTENT_BUILD_DIR覆盖此目录位置。

$ rsconnect内容构建添加——guid 4ffc819c-065c-420c-88eb-332db1133317

请注意

看到本节有关如何批量添加多个内容项的示例,请从rsconnect内容搜索命令。

要查看当前“跟踪”的所有内容项,请使用Rsconnect内容构建ls子命令。

$ rsconnect内容构建ls

若要仅查看尚未构建的“跟踪”内容项,请使用——状态NEEDS_BUILD国旗。

$ rsconnect内容构建ls——状态NEEDS_BUILD

添加了内容项之后,就可以使用Rsconnect内容构建运行子命令。该命令将尝试构建所有具有状态的“跟踪”内容NEEDS_BUILD

$ rsconnect内容构建运行信息]202112 - 14 -初始化ContentBuildStore t13:02:45 - 0500https://connect.example.org:3939信息]2021开始内容构建https://connect.example.org:3939...信息]2021开始构建:4ffc819c-065c-420c-88eb-332db1133317信息]202112 - 14 - t13:02:50 - 0500运行1等待0成功0错误0信息]2021编译成功:4ffc819c-065c-420c-88eb-332db1133317信息]202112 - 14 - t13:02:55 - 0500运行0等待0成功1错误0信息]202112 - 14 - t13:02:55 - 05001完成1个内容构建0: 00:10信息]202112 - 14 - t13:02:55 - 0500成功1错误0信息]2021日积月累内容构建完成。

有时内容构建会失败,需要发布者或管理员进行调试。使用Rsconnect内容构建ls方法识别导致错误的内容构建并检查构建日志Rsconnect内容构建日志子命令。

{"rsconnect_build_status": "ERROR", "last_deployed_time": " 21012-02t18: 09:11z ", "owner_guid": "edf26318-0027-4d9d-bbbb-54703ebb1855", "rsconnect_last_build_log": "/Users/david/code/rstudio/rsconnect-python/rsconnect-build/logs/connect_example_org_3939/4ffc819c-065c-420c- 88ib -332db1133317/pZoqfBoi6BgpKde5.log", "guid":英格兰vs伊朗让球"4ffc819c-065c-420c-88eb-332db1133317", "rsconnect_build_task_result": {"user_id": 1, "error": "Cannot find compatible environment: no compatible Local environment with Python version 3.9.5", "code": 1, "finished": true, "result": {"data": "An error occurred while building the content", "type": "build-failed-error"}, "id": "pZoqfBoi6BgpKde5"}, "dashboard_url": "https://connect.example.org:3939/connect/#/apps/4ffc819c-065c-420c-88eb-332db1133317", "name": " logging -api- Python ", "title":"logs- API - Python ", "content_url": "https://connect.example.org:3939/content/4ffc819c-065c-420c-88eb-332db1133317/", "bundle_id": "141", "rsconnect_last_build_time": " 21012-14t18: 07:16z ", "created_time": " 21007-19t19: 17:32z ", "app_mode": " Python - API "}] $ rsconnect内容构建日志——guid 4ffc819c-065c-420c- 88ebb -332db1133317 [INFO] 21012-14t13:09:27-0500初始化ContentBuildStore for https://connect.example.org:3939 Building Python API…Cannot find compatible environment: no compatible Local environment with Python version 3.9.5任务失败。任务退出,状态为1。

常见的用法示例搜索内容

请注意

当使用——r-version而且——py-version标志,用户应该确保引用参数,以避免与您的shell冲突。例如,bash将解释——py-version > 3.0.0作为shell重定向,因为未引用>的性格。

#只返回已发布的内容$ rsconnect内容搜索—已发布#只返回未发布的内容$ rsconnect内容搜索-未发布#返回python版本至少为3.9.0的已发布内容$ rsconnect内容搜索-已发布-py-version“> = 3.9.0”#返回发布的内容,其中R版本正好是3.6.3$ rsconnect内容搜索—已发布—r-version“= = 3.6.3”#返回已发布内容,其中内容类型为静态RMD$ rsconnect内容搜索——内容类型rmd-static#返回内容类型为shiny或fast-api的已发布内容$ rsconnect内容搜索——内容类型shiny——内容类型python-fastapi#返回标题包含“Stock Report”文本的所有已发布或未发布内容$ rsconnect内容搜索-标题-包含“股票报告”#返回发布的内容,结果按内容最后一次部署的时间排序$ rsconnect内容搜索—已发布—order-by last_deployed#返回发布的内容,结果按照内容创建的时间排序$ rsconnect内容搜索-发布-订单创建

查找python版本
#搜索所有发布的内容并打印唯一的r和python版本组合$ rsconnect内容搜索—已发布|金桥- c”。[]|{py_version,r_version}'|排序|uniq“py_version”“3.8.2”“r_version”“3.5.3”“py_version”“3.8.2”“r_version”3.6.3”“py_version”“3.8.2”“r_version”:零“py_version”:零,“r_version”“3.5.3”“py_version”:零,“r_version”3.6.3”“py_version”:零,“r_version”:零

查找最近部署的内容
#只返回最近部署的10个内容项$ rsconnect内容搜索-order-by last_deployed -published|金桥- c的限制(10;.[]) | {guid, last_deployed_time}'“guid”“4 ffc819c - 065 - c - 420 - c - 88 eb - 332 db1133317”“last_deployed_time”“2021 - 12 - 02 - t18:09:11z”“guid”“aa2603f8 - 1988 - 484 - f - a335 - 193 f2c57e6c4”“last_deployed_time”“2021 - 12 - 01 - t20:56:07z”“guid”“051252 f0 - 4 - f70 - 438 f - 9 - be1 d818a3b5f8d9”“last_deployed_time”“2021 - 12 - 01 - t20:37:01z”“guid”“015143 da - b75f - 407 - c - 81 b1 - 99 c4a724341e”“last_deployed_time”“2021 - 11 - 30 - t16:56:21z”“guid”“bcc74209-3a81-4b9c-acd5-d24a597c256c”“last_deployed_time”“2021 - 11 - 30 - t15:51:07z”“guid”“f21d7767-c99e-4dd4-9b00-ff8ec9ae2f53”“last_deployed_time”“2021 - 11 - 23 - t18:46:28z”“guid”“da4f709c——c383——4 -流化床燃烧器- 89 - e2 - f032b2d7e91d”“last_deployed_time”“2021 - 11 - 23 - t18:46:28z”“guid”“9180809 d - 38 - fd - 4730 - a0e0 - 8568 c45d87b7”“last_deployed_time”“2021 - 11 - 23 - t15:16:19z”“guid”“2 b1d2ab8 - 927 d - 4956 - bbf9 - 29798 - d039bc5”“last_deployed_time”“2021 - 11 - 22 - t18:33:17z”“guid”“c96db3f3 - 87 a1 - 4 - df5 9 - f58 eb109c397718”“last_deployed_time”“2021 - 11 - 19 t20:25:33z”

从搜索结果添加构建
#搜索所有API类型内容,然后#为每个guid添加到“跟踪”内容项guid$ (rsconnect内容搜索——发表- - - - type python api——内容类型的api|金桥- r”。[].guid”Rsconnect内容构建add——guid美元guid完成

每次添加一个内容项可能是一项缓慢的操作。这是因为Rsconnect内容构建添加在将每个内容项添加到“跟踪的”内容项之前,必须为其获取元数据。通过提供多个——guid的参数Rsconnect内容构建添加子命令,我们可以在一个API调用中获取多个内容项的元数据,这大大加快了操作的速度。

将每个发布内容项的guid写入一个名为guids.txt的文件Rsconnect内容搜索—已发布|金桥”。[].guid”> guids.txt通过执行一个“rsconnect content build add”命令从guids.txt中# bulk-addxargsprintf--“- g % s \ n”< guids.txt|Xargs rsconnect内容构建添加