# 云部署套件常见问题处理

当项目无法成功进行一键部署的时候,那么可以按以下列举的情况进行问题的排查和解决。

# 左侧活动栏没有看到小火箭图标,如何处理?

检查是否已安装或者激活 Cloud Studio DeployKit 扩展,安装或者激活扩展后按照提示重新加载窗口即可解决。

# 为什么腾讯云扫码登录时报错:登录失败,暂无操作权限

原因一般为该账户无操作权限,需要主账号(或拥有授权操作的子账号)给当前子账号进行如下授权操作。 完成授权后,重新扫码登陆即可。步骤如下:

  1. CAM 用户列表 页,选取对应子账号,单击用户名称,进入用户详情页。
  2. 单击关联策略,在添加策略页面单击从策略列表中选取策略关联。
  3. 选择新建自定义策略 > 按策略语法创建 > 空白模板,填入如下内容。
{
	"version": "2.0",
	"statement": [
		{
			"resource": [
				"*"
			],
			"action": [
				"cam:CreateRole", "cam:AttachRolePolicies", "cam:PassRole", "name/sts:AssumeRole"
			],
			"effect": "allow"
		}
	]
}
  1. 单击确定,即可授予子账号操作权限。

关于更多账号权限管理,请阅读腾讯云文档 (opens new window)

# 点击开始部署按钮,部署进度长时间卡住不动,如何处理?

原因可能为依赖安装不全或者没有依赖安装,解决方法为把 node_module 目录删除并重新执行安装依赖。

# 点击开始部署按钮提示该项目不支持部署,如何处理?

该项目不支持部署的原因有多种,这里列举一些常见原因和解决方法:

  1. 扩展目前仅支持前端项目和 node.js 项目,暂不支持 JavaGoPhp.net 等语言。
  2. 前端项目和 node.js 项目支持大部分框架,详见附录中已支持的框架列表,不在此列表中则不支持,可通过配置 deploy.yml 文件解决,配置项详见deployKit 使用文档 (opens new window)
  3. 项目没有依赖或者根目录下没有 package.json 文件,可通过配置 deploy.yml 文件解决,配置项详见deployKit 使用文档 (opens new window)
  4. node.js 项目没有使用常用的入口,DeployKit 支持常用的入口文件 app.tssrc/app.tsapp.jssrc/app.jsmain.tssrc/main.tsmain.jssrc/main.jsindex.tssrc/index.tsindex.jssrc/index.js。可以修改文件名称或目录,或者修改 package.json 文件的 main 字段,或者编写 deploy.yml 配置文件的 entry 字段解决,配置项详见deployKit 使用文档 (opens new window)

# 部署过程中控制台出现 you are not authorized to perform operation xxx Operation not Allowed xxxRoleNotFound 等报错信息,如何处理?

原因一般为角色无权限导致。在访问管理角色页面中添加角色策略并关联后重试可解决。管理角色页面:腾讯云 (opens new window) 阿里云 (opens new window)

# 部署过程中控制台出现 unable to locate '/workspace/xxxx' glob 等报错信息,如何处理?

原因一般为 deploy.yml 配置文件的 outputDir 配置项指定的目录不存在导致,修改 outputDir 配置项指定正确的目录可解决。

# 部署过程中控制台出现 MODULE_NOT_FOUND Cannot find module xxx 等报错信息,如何处理?

原因一般为依赖安装不全或者没有依赖安装,解决方法为把 node_module 目录删除并重新执行安装依赖。

# 部署过程中控制台出现 xxx 域名未完成ICP备案 xxx 未备案 等报错信息,如何处理?

原因一般为该自定义域名未备案导致,解决方法为进行网站备案或者将函数部署到非大陆地区,例如:香港、新加坡、东京等城市。

# 部署过程中控制台出现 Account Arrears xxx is Arrears 等报错信息,如何处理?

原因一般为免费资源和额度使用完毕,账号欠费,请充值后重试可解决。

# 部署过程中控制台出现 函数个数超限制 Function account xxx limit 等报错信息,如何处理?

原因是该命名空间的地域下函数的个数超过上限,可通过将项目部署到其他地域或者命名空间里来解决。

# 部署过程中控制台出现 函数Runtime不支持修改(Nodejs 12.16) 等信息,如何处理?

原因是之前部署的函数运行时版本与重新部署时不一致,可通过以下两种方式解决。

  1. (推荐)访问腾讯云函数控制台 (opens new window),删除当前项目应用对应的函数(函数名即应用部署的名称),再重新部署。
  2. 项目根目录下配置deploy.yml文件,将runtime设置为对应的版本后再重新部署,例如:
cloud:
    function:
      bootstrap: /var/lang/node16/bin/node backend/index.js
      runtime: Nodejs12.16

# 部署过程中控制台出现Request Entity Too Large Request Content Is Limit 等报错信息,如何处理?

原因是代码体积超过平台限制。可通过拆分代码,优化项目依赖来解决。

# 部署过程中阿里云部署控制台出现code: AccessDenied 等报错信息,如何处理?

原因是一般是账号未开通函数计算或无权限,需要用户到 阿里云控制台 (opens new window)根据页面提示进行开通或授权。

页面提示

# 部署过程中阿里云部署控制台出现 code: InvalidAccessKeyID,腾讯云部署控制台出现 code: AuthFailure,如何处理?

原因一般为密钥过期或者账号和密钥不正确,解决方法是重新登陆或者重新填写正确的账号和密钥。

# 为什么阿里云部署后浏览器访问,出现以附件形式下载网页?

浏览器不展示网页而是以附件形式下载网页属于正常现象,这是阿里云出于安全考虑的限制。从浏览器访问默认域名的网页类型文件,会以附件形式进行下载。项目绑定自定义域名后通过自定义域名的地址访问即可。自定义域名的配置详见deployKit 使用文档 (opens new window)

# 部署后网页访问提示 "该网页无法正常运作", 如何处理?

该问题通常是两类问题导致,分别为 云平台限制 和 项目本身问题
云平台限制:

  1. 不支持 socket 等网关不支持的协议。
  2. 必须监听 9000 端口和 0.0.0.0host, 只有 /tmp 目录可读写。
  3. 部署模型为单进程,不支持使用多进程。
  4. 支持部分 LTS node.js 版本,本地开发请选择云平台支持的版本,检查是否使用了不符合当前版本的 node.js api,否则会导致 api 调用异常。

项目本身问题:

  1. 确保项目在本地能正常运行,没有出现报错。
  2. 确保项目依赖没有二进制文件或者不能跨平台的依赖文件。

找到导致的原因进行对应修改即可。

# 前端项目部署后网页访问提示 Not found a suitable handler adapter: /index.html ,如何处理?

原因一般有两种:

  1. 检查前端构建产物 outputDir 指定的目录下是否存在前端入口文件 index.html,如果没有则需要修改前端项目的构建配置。
  2. 检查前端构建产物是否在指定目录中,可以到 .deploy/dist/frontend 目录下检查前端构建产物。若没有需要在 deploy.yml 文件进行配置。
# `deploy.yml` 文件
outputDir: build # 可选,构建产物的目录,如果是前端,约定目录下必须存在前端入口文件 index.html。 对于需要构建的项目

# nodejs 项目部署后运行报错 can not rend file xxxx xxxx is not found,如何处理?

原因是静态文件没有拷贝到构建目录,这种场景就可以在 deploy.yml 文件使用 assets 配置项来指定您的资源文件目录位置,DeployKit 自动帮您拷贝到构建目录

# `deploy.yml` 文件
assets: # 可选,资源目录,会拷贝到构建产物项目中一起上传
  - 'app/assets' # 目录 app/assets 会拷贝到构建产物项目中

# 为什么部署到阿里云生成的访问链接不是根路径 /

平台的限制导致,可能会导致导致资源加载不存在等问题,解决方法有如下:

  1. 绑定自定义域名,生成的访问链接就是跟路径 / 了,自定义域名配置详见deployKit 使用文档 (opens new window)
  2. 修改代码,增加路径处理。如 Vite 项目修改 base 配置项为 /test/prod
  3. 部署到腾讯云,腾讯云支持部署到根路径 /