四、关联云开发资源
为工程关联云开发所需的资源,即在DevEco Studio中选择您的华为开发者帐号加入的开发者团队,将该团队在AGC的同包名应用关联到当前工程。具体操作如下:
1.(可选)如您尚未登录DevEco Studio,点击“Sign in”,在弹出的帐号登录页面,使用已实名认证的华为开发者帐号完成登录。
2.登录成功后,界面将展示帐号昵称。
3.点击“Team”下拉框,选择开发团队。
注意:团队帐号持有者需为团队完成实名认证。
4.关联应用。
选中团队后,系统根据工程包名在该团队中自动查询AGC上的同包名应用。
如查询到应用,选中该应用,点击“Finish”即可。
如查询到的应用尚未关联任何项目,则无法选中。请先将应用添加到您的项目下。
5.如果查询到的应用所属项目尚未启用数据处理位置,请点击界面提示内的“AppGallery Connect”设置数据处理位置。
注意:由于云开发目前仅支持中国站点,请确保项目启用的数据处理位置包含中国站点。无论项目启用的默认数据处理位置为哪个站点,后续开发的云服务资源都将部署在中国站点。
6.如在当前团队中未查询到同包名应用,请先确认填写的包名是否有误。
如包名有误,点击界面提示中的“go back”返回工程信息配置界面进行修改。
如包名无误,则表明当前团队尚未在AGC控制台创建与当前工程包名相同的应用。您可点击界面提示中的“AppGallery Connect”,前往AGC控制台创建同包名应用。
7.完成以上操作后,DevEco Studio即可获取到同包名应用信息。选中应用后,点击“Finish”。
如您所属的团队尚未签署云开发相关协议,点击协议链接仔细阅读协议内容后,勾选同意协议,点击“Finish”,进入主开发界面。
说明:只有帐号持有者和法务角色才有权限签署协议。
8.在主开发界面,可查看刚刚新建的工程。关于工程的详细目录结构介绍,请参见端云一体化开发工程介绍。
五、工程初始化配置
当您成功创建工程并关联云开发资源后,DevEco Studio会为您的工程自动执行一些初始化配置。
1.自动开通云开发相关服务
DevEco Studio为工程关联的项目自动开通云开发相关服务:认证服务、云函数、云数据库、云托管、API网关、云存储。您可在“Notifications”窗口查看服务开通状态。
说明:如服务开通失败,您可随界面引导前往AGC控制台进行手动开通。如云存储服务自动开通与手动开通均失败,可能是账户欠费导致。请您检查账户是否余额不足,补齐欠款后再前往AGC控制台进行手动开通。
2.端侧工程自动集成配置文件和云服务SDK
DevEco Studio为端侧工程自动集成agconnect-services.json配置文件以及相关云服务最新版本HarmonyOS SDK。
“entry > src > main > resources > rawfile”目录下:agconnect-services.json配置文件,内含client secret和API key,请妥善保管。
“entry > oh-package.json5”:自动引入了相关云服务(认证服务、云函数、云存储)最新版本HarmonyOS SDK,同时会自动集成端云一体化登录组件的最新SDK。
3.云侧工程自动集成云数据库SDK
DevEco Studio为云侧工程自动集成云数据库最新版本Node.js Server SDK。
“cloudfunctions > 函数目录名 (如下图idgenerator)> package.json”:自动引入云数据库最新版本的Node.js Server SDK。
六、端云一体化开发工程介绍
端云一体化开发工程目录分为三个子工程:端开发工程(Application)、云开发工程(CloudProgram)、端侧公共库(External Libraries)。
1.端开发工程(Application)
端开发工程主要用于开发应用端侧的业务代码,端开发工程目录结构请参见工程介绍。
注意:使用DevEco Studio 3.1 Beta1创建的工程采用的是npm包管理,而使用DevEco Studio 3.1 Release新建工程将使用ohpm作为默认包管理器。因此,在您升级到DevEco Studio 3.1 Release版本后,打开历史工程可能会出现兼容性问题,您需参考OHPM包管理器进行工程迁移。
2.云开发工程(CloudProgram)
在云开发工程中,您可为您的应用开发云函数和云数据库服务资源。云开发工程目录结构如下图所示:
clouddb:云数据库工程目录。
dataentry:用于存放数据条目文件。
说明:使用通用云开发模板创建的工程会默认生成post_data数据条目文件,使用商城模板创建的云开发工程则会默认生成sku(商品基本属性)、spu(商品扩展属性)以及spu_attr(商品规格属性)数据条目文件。您可按需修改。
objecttype:用于存放对象类型文件。
说明:使用通用云开发模板创建的工程会默认生成post对象类型文件,使用商城模板创建的云开发工程会默认生成order(订单)、shopcart(购物车)等多个对象类型文件。您可按需修改。
db-config.json:模块配置文件,主要包含云数据库工程的配置信息,如默认存储区名称、默认数据处理位置。
cloudfunctions:云函数工程目录。
说明:使用通用云开发模板创建的工程默认自动创建一个示例函数“idgenerator”,使用商城模板创建的云开发工程会默认生成mall-address(地址)、mall-commodity(商品)等多个函数。您可按需修改。
node_modules:包含了所有第三方依赖。
cloud-config.json:云开发工程配置文件,包含应用名称与ID、项目名称与ID、启用的数据处理位置、支持的设备类型等。
package.json:定义了TypeScript公共依赖。
package-lock.json:记录当前状态下实际安装的各个npm package的具体来源和版本号。
3.端侧公共库(External Libraries)
端侧公共库中包含了JDK的扩展类库。