使用 cpdctl 部署 Shiny 应用程序

使用 cpdctl 部署您的 Shiny 应用。

如果你还没有 Shiny 应用程序,请创建一个。 您可以在 RStudio 控制台中输入以下示例代码:

library(shiny)
ui <- fluidPage(
  "Hello, world!"
)
server <- function(input, output, session) {
}
shinyApp(ui, server)

或者,直接通过图形用户界面创建一个示例应用程序。 请参阅《 通过 RStudio 图形用户界面创建自动生成的应用程序 》。

将项目资源导出并导入部署空间,是将资源(例如 Shiny 应用程序)迁移到部署空间的标准方法。 如需了解更多信息,请参阅 “导入空间和项目 ”。

如果您使用 cpdctl,可以从两种不同的资产类型部署 Shiny 应用程序:

使用 cpdctl 部署 Shiny 应用程序

使用 cpdctl 部署 Shiny 应用程序:

  1. 设置您的 Shiny 应用元数据。 请参考以下示例:

    #Shiny App Name:
    shiny_deployment_name="sampleapp-cpdctl-3"
    
    #asset metadata specification
    asset = {
    "id" : "c0d7c50e-455a-48bb-b3d2-a987ff0791fe"
    }
    
    asset_json = json.dumps(asset)
    asset_json
    
    #hardware metadata specification
    hardware_spec_details = {
    "id" : "f3ebac7d-0a75-410c-8b48-a931428cc4c5",
    "rev" : 'latest',
    "name" : "XS",
    "num_nodes" : 1
    }
    
    hardware_spec_details_json = json.dumps(hardware_spec_details)
    hardware_spec_details_json
    
    #shiny metadata specification
    rshiny_details = {
    "authentication" : "members_of_deployment_space",
    "parameters" : {
       "serving_name" : "shiny15"
    }
    }
    rshiny_details_json = json.dumps(rshiny_details)
    rshiny_details_json
    
  2. 部署您的 Shiny 应用:

    ! cpdctl ml deployment create --space-id {space_id} --name {shiny_deployment_name} --asset '{asset_json}'  --r-shiny '{rshiny_details_json}' --hardware-spec '{hardware_spec_details_json}'
    

对于批量部署,不支持该 hardware_spec.num_nodes 参数。

使用 cpdctl 部署包含 Shiny 应用程序的代码包

有关详细信息,请参阅 《使用 CPDCTL 创建和注册代码包资产 》。

使用 cpdctl 部署包含 Shiny 应用程序的代码包:

  1. 设置您的 Shiny 应用元数据。 请参考以下示例:

    #Shiny App Name:
    shiny_deployment_name="sampleapp-cpdctl-3"
    
    #asset metadata specification
    asset = {
    "id" : "c0d7c50e-455a-48bb-b3d2-a987ff0791fe"
    }
    
    asset_json = json.dumps(asset)
    asset_json
    
    #hardware metadata specification
    hardware_spec_details = {
    "id" : "f3ebac7d-0a75-410c-8b48-a931428cc4c5",
    "rev" : 'latest',
    "name" : "XS",
    "num_nodes" : 1
    }
    
    hardware_spec_details_json = json.dumps(hardware_spec_details)
    hardware_spec_details_json
    
    #shiny metadata specification
    rshiny_details = {
    "authentication" : "members_of_deployment_space",
    "parameters" : {
       "serving_name" : "shiny3"
       "code_package" : {
          "path" : "RShiny/apps/app1"
       }
    }
    }
    
  2. 部署您的 Shiny 应用:

    ! cpdctl ml deployment create --space-id {space_id} --name {shiny_deployment_name} --asset '{asset_json}'  --r-shiny '{rshiny_details_json}' --hardware-spec '{hardware_spec_details_json}'
    

对于批量部署,不支持该 hardware_spec.num_nodes 参数。