Cloud Studio 高阶玩家:强大的 YAML 模板

news2024/10/1 12:26:40

Cloud Studio 高阶玩家:强大的 YAML 模板

1. 功能简介

编程免不了要写配置文件,怎么写配置也是一门学问。YAML 是专门用来写配置文件的语言,非常简洁和强大。

img

了解到一些用户在Cloud Studio开发项目的时候,环境上需要依赖一些组件,项目中也会使用到编辑器的插件。

而如果这些都需要用户自己去安装和准备,则会非常的繁琐,也不利于用户分享自己的工作空间给其他协作同事创建副本。

因此我们设计出了YAML模板这个功能,用于解决这个问题。

关于YAML 的简介,传送门:YAML 语言教程

2. 功能入口

功能的入口在各模板页面的内容右上角:

img

分为两个功能:

img

  1. 手动新建
  2. 导入workspcace.yml

3. 手动新建

img

该表单一共有 7 项可以填充的。

img

  1. 环境镜像,顾名思义就是决定你模板的基本环境,提供了大多数语言的的开发环境

img

  1. 额外资源,目前提供 mysql 和 redis 预安装

img

  1. 预装插件,为工作空间默认安装 VSCode 插件,支持选择版本。

img

img

  1. 自定义命令, 支持在不同阶段执行自定义 Shell 命令。

img

分为:初始化命令,启动命令,关机命令支持 tab 键跳转下一行。

  1. 环境变量,免去配置一堆默认环境变量的烦恼。

img

3.1 导出/导入 workspace.yml

该功能可以选择一个在手动新建阶段导出的workspace.yml文件,可以解决多人使用同一个配置情况下需要同时配置相同模板的烦恼。

img

4. 解读 workspace.yml

一个成熟的 workspace.yml 长成这样:

---
# 这是模板名称
name: "react-demo"
# 这是模板描述
description: "一个简易YAML示例"
# 这是模板的用于区分的tag
tags:
- "Node.js"
- "React"
# 模板创建的工作空间打开时自动拉取的代码仓库
repository: "https://e.coding.net/coding-public/cloud-studio-samples/react-quickstart.git"
# 默认拉取的分支
ref: "master"
# 定义的环境变量
envs:
- name: "PROJECT_NAME"
  value: "this is a react-demo project"
# 打开工作空间自动安装插件
extensions:
- "msjsdiag.vscode-react-native@1.9.3"
- "vscode.typescript@1.62.3"
# 定义了生命周期,共分为init、start、destory
lifecycle:
  init:
  - name: "update apt cache"
    command: "apt update"
  - name: "install nginx"
    command: "apt install -y nginx"
  start:
  - name: "run nginx"
    command: "service nginx start"
# sidecar定义了需要启动的附属组件,目前仅支持mysql和redis
sidecar:
  mysql:
    enabled: true
    password: "123456"
    database: "test"
  redis:
    enabled: true
    password: "123456"
# 初始镜像id,请勿手动修改
image_id: 5

让我们来一项项拆解。

  • envs: 对应初始环境变量
  • extensions

定义的是编辑器中需要使用的插件,比如Maven for Java等等

img

  • lifecycle

lifecycle 中定义的是整个项目的生命周期各个阶段需要执行的内容,各个定义的生命周期如下图所示:

img

  1. init:首次创建空间后的启动,启动后执行。
  2. start:日常启动空间后执行。
  3. destroy:停止空间前执行。

注意:由于运行时机的原因,initstart 阶段的 lifecycle 命令不能使用由代码仓库中的文件、脚本等内容构成的可执行命令

  • sidecar

常用的组件,支持以sidecar定义,目前支持的组件有mysqlredis,如果你的项目需要使用到这两类组件,则定义enabledtrue即可,否则可以置为false

sidecar 形式运行原理如下图,在工作空间中,用户所能看到的为编辑器部分,而 mysqlredis 是以同级的方式进行运行,通过网络端口连通。

img

  1. 使用YAML模板

以电商模版为例说明如何使用

img

电商模版使用 SpringBoot(2.1.5)Java JDK(11)版本。

img

---
name: "java-demo"
description: "一个简易YAML 示例"
tags:
- "Java"
ref: "master"
extensions:
- "Pivotal.vscode-spring-boot"
- "vscjava.vscode-maven@0.34.0"
lifecycle:
  init:
  - name: "update apt cache"
    command: "apt update"
  - name: "install mysqlclient"
    command: "apt-get install -y mysql-client"
  start:
sidecar:
  mysql:
    enabled: true
    password: "123456"
    database: "uzymall"
  redis:
    enabled: true
    password: "uzymall"
image_id: 4

定义中用到了springbootmaven的插件,初始化只需要安装mysqlclient,用于开发调试时登录数据库查看数据,同时,数据组件中使用到了mysql组件,因此只打开了mysql的定义。

项目中对应文件修改:

img打开空间后,由于也定义了.vscode/preview.yml的内容,因此空间每次打开会执行指定的run命令,即刻可以预览本电商应用启动后的页面效果。

img

图示为空间打开完成后的效果:

img

您可以通过以下两个 链接查看由该功能生成的工作空间,并可以将workspace.yml复制下来体验使用:

  1. https://cloudstudio.net/templates/hBswiZB0M4Z

img

  1. https://cloudstudio.net/templates/hQGhL1EYuEF

img

6. 如何使用 sidecar

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java设计模式-策略模式

简介 在软件开发中,设计模式是为了解决常见问题而提供的一套可重用的解决方案。策略模式(Strategy Pattern)是其中一种常见的设计模式,它属于行为型模式。该模式的核心思想是将不同的算法封装成独立的策略类,使得它们…

软件测试项目测试报告总结

测试计划概念:就在软件测试工作实施之前明确测试对象,并且通过资源、时间、风险、测试范围和预算等方面的综合分析和规划,保证有效的实施软件测试。 需求挖掘的6个方面: 1、输入方面 2、处理方面 3、结果输出方面 4、性能需求…

蓝牙耳机怎么挑选?工程师盘点目前最值得入手的蓝牙耳机

蓝牙耳机已经成为手机标配,各大品牌也陆续加入蓝牙耳机行业,市场十分繁荣。我身为从业人员对整个行业有着深入的了解,考虑到很多朋友还不知道蓝牙耳机怎么挑选,我整理了目前最值得入手的蓝牙耳机,分别是: 1…

保护你的 shell脚本

什么是shell? shell 是一种脚本语言 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序 又是一种脚本语言&#xff…

1. python学习环境准备

文章目录 前言本专栏文章旨在记录《Python编程从入门到实践》一书的学习笔记。 一、编程环境二、使用步骤1.修改默认python版本2.终端退出python解释器3.编写.py文件4.运行.py文件 三、Python帮助文档的使用总结 前言 本专栏文章旨在记录《Python编程从入门到实践》一书的学习…

N9305语音芯片在新能源车充电桩上的方案

语音芯片技术作为近年来蓬勃发展的人工智能领域的重要组成部分,正在被广泛运用于诸多领域,并为人类生活带来了很多便利和创新。其中,新能源充电桩的运用就是一个很好的例子。随着电动汽车的普及,充电桩的需求量不断增加。为了提高…

BGP路由选择实验

测试环境拓扑图 每一种规则测试完后记得恢复初始状态!! 各设备BGP Router_ID为loopback 0的地址。 AR1 配置 [V200R003C00] #sysname AR1 # interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.0 # interface LoopBack0ip address 1.1.…

远程桌面连接怎么使用?

远程桌面连接是一种远程控制计算机的技术,它允许用户通过Internet或局域网远程访问另一台计算机的桌面界面。使用远程桌面连接技术,可以帮助用户在家里或在外出时访问工作计算机,或者在不同的地方协作完成任务。在本文中,我们将介…

k8s 基于MutatingWebhookConfiguration实现node超卖和sidecar注入

k8s 基于MutatingWebhookConfiguration实现node超卖和sidecar注入 源码在:https://github.com/Seaiii/MutatingWebhook我写了几个脚本,可以直接运行。 一、MutatingWebhookConfiguration原理 MutatingWebhookConfiguration 是 Kubernetes 中的一种资源对象&#…

【代码随想录】刷题Day31

1.分发饼干 455. 分发饼干 贪心的思路就是:小的饼干尽量去匹配胃口小的孩子,这样才能实现尽可能多孩子吃到。 那么代码就很好写了: 1.排序g和s,这样方便查找小的数 2.饼干的位置不停遍历,对应我们需要一个ret代表当前…

语义分割mask转json

文章目录 1 mask2json ——代码实现1.1 通过mask获取每个类别对应的灰度值1.2 mask 转 json 2 mask2json ——利用工具转2.1支持数据增强2.2 支持多种格式转换 本文介绍两种语义分割mask转json的方法: 方法1:是参考语义分割mask转json(改进版…

教你用python的Streamlit库制作可视化网页应用

目录 步骤1:安装 Streamlit步骤2:创建一个新的 Python 文件步骤3:导入必要的库步骤4:编写应用程序代码步骤5:运行应用程序常用组件 当涉及到编写交互式应用程序时,Streamlit 是一个非常流行和强大的 Python…

图神经网络:处理点云

文章说明: 1)参考资料:PYG官方文档。超链。 2)博主水平不高,如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 简单前置工作学习文献阅读Point的实现模型问题 简单前置工作学…

用项目管理思维来过5·20,真实太酷啦!

明天就是一年一度的520啦,阿道单身多年的同事刚京在四月成功使用SWOT分析模型相亲成功,牵手女嘉宾。二人眼看着就要迎来在一起后的第一个节日520,刚京却因为没有头绪而陷入了不知所措的焦虑。 团队成员齐上阵,用项目管理思维&…

使用 Apache Flink 开发实时 ETL

Apache Flink 是大数据领域又一新兴框架。它与 Spark 的不同之处在于,它是使用流式处理来模拟批量处理的,因此能够提供亚秒级的、符合 Exactly-once 语义的实时处理能力。Flink 的使用场景之一是构建实时的数据通道,在不同的存储之间搬运和转…

<组件封装:Vue + elementUi 通过excel文件实现 “ 批量导入 ” 表单数据,生成对应新增信息 >

Vue elementUi 通过excel文件实现 “ 批量导入 ” 表单数据,生成对应新增信息 👉 前言👉 一、封装组件对应API及绑定事件> Attributes> Event 👉 二、实现案例> HTML父组件模板> 子组件模板 👉 三、效果演…

线程相关基础知识

一、相关概念 1.1 cpu 中央处理器(central processing unit, 简称cpu ),计算机系统的 运算 和 控制 核心 1.2 cpu核心数和线程数 cpu核心数指cpu 内核数量,如双核、四核、八核。 cpu线程数是一种逻辑的概念,就是模…

基于 SpringBoot + Redis 实现分布式锁

大家好,我是余数,这两天温习了下分布式锁,然后就顺便整理了这篇文章出来。文末附有源码链接,需要的朋友可以自取。 至于什么是分布式锁,这里不做赘述,不了解的可以自行去查阅资料。 文章目录 实现要点项目…

android13 FLAG_BLUR_BEHIND 壁纸高斯模糊,毛玻璃背景方案设计-千里马framework实战

hi,粉丝朋友们! 今天有个学员朋友,问到了一个高斯模糊相关问题,这个高斯模糊相关的需求我相对还是比较熟悉,下面来重点讲解一下新版本高斯模糊相关的实现。 更多framework干货知识手把手教学 Log.i("qq群",“422901085…

[230528] 托福阅读真题|TPO66 13/30|整卷得分22/30|9:45~10:45|15:40~16:40

The Actor and the Audience P1 rehearsev 排练;排演anticipate v 预期;预料;预见 audiencen 观众brilliantadj 灿烂的;绝妙的rehearsaln 排练;预演;排演crumblev 崩塌stage frightn 怯场(演员…