详情页标题前

腾讯云云函数(SCF)快速开始-云淘科技

详情页1

我们可以使用 @malagu/scf-plugin 组件将应用部署到腾讯云云函数。基于约定大于配置原则,零配置,开箱即用。

云资源

适配器组件有一套默认的部署规则,该规则可以被覆盖。适配器组件在执行部署任务时,将使用平台提供的 SDK,根据部署规则,创建需要的云资源。如果发现云资源已经存在,则差异更新云资源。适配器组件总是以尽可能安全的方式,创建或更新云资源。例如,当配置了自定义域名,适配器组件则尝试创建或更新该自定义域名资源。适配器组件将应用部署到一个函数中,也就是说一个应用对应着一个函数,如果应用较大,应该将大应用拆解成一个个小的微应用或者微服务。如同微服务架构的粒度拆分原则,合理的粒度拆分,能够更好地进行应用管理。框架会保证一个应用在一个函数中运行的性能。

环境隔离

在 Malagu 框架中,提供了一个配置属性 stage 表示环境。而在 @malagu/cloud-plugin 组件约定的部署规则中,使用 mode 属性映射 stage 属性。默认提供了三套环境:测试、预发和生产。表达式规则如下:

stage: "${'test' in mode ? 'test' : 'pre' in mode ? 'pre' : 'prod' in mode ? 'prod' : cliContext.prod ? 'prod' : 'test'}" # test, pre, prod

stage 取值规则如下:test:测试环境,当 mode 属性包含 test 模式,或者 mode 都不包含 test、pre、prod,且命令行参数 -p,--prod 未被指定。pre:预发环境,当 mode 属性包含 pre 模式。prod:生产环境,当 mode 属性包含 prod 模式,或者命令行参数 -p,--prod 被指定。通过指定特殊的 mode 表示不同的部署环境:

# 部署到测试环境malagu deploy -m test # 或者 malagu deploy
# 部署到预发环境,也可以直接跳过预发环境的部署,直接部署到生产环境malagu deploy -m pre
# 部署到生成环境malagu deploy -m prod

隔离级别

环境的隔离级别支持控制。可以使用账号隔离环境,不同环境对于不同配置文件,不同配置文件分别配置不同的云账号。同理,也可以使用 Region、服务别名来隔离环境。框架默认提供的是服务别名隔离环境。隔离方式可以互相叠加。stage 属性值与服务别名关联(以下是默认规则,无需配置):

malagu:  cloud:    alias:      name: ${stage}

API 网关的 environment 关联(以下是默认规则,无需配置):

malagu:  cloud:    apiGateway:      release:        environmentName: "release"

部署模式

适配器组件通过 mode 属性定义部署模式,支持的部署模式如下:http:基于自定义 API 网关 + Web 函数的部署模式。部署过程中,创建或更新 API 网关、命名空间、函数等云资源。timer:基于定时触发器 + 事件函数的部署模式。部署过程中,创建或更新定时触发器、命名空间、函数等云资源。api-gateway:基于自定义 API 网关 + 事件函数的部署模式。部署过程中,创建或更新 API 网关、命名空间、函数等云资源。api-gateway-basic:基于默认 API 网关 + 事件函数的部署模式。部署过程中,创建或更新 默认API 网关等云资源, 本模式下, API 网关调用次数不计费

mode:    - http

自定义部署规则

可以通过同名覆盖自定义部署规则。

默认规则

默认规则定义在 @malagu/scf-plugin 组件的 malagu-remote.yml 配置文件中。

自定义部署类型

mode:	- http # 默认值是 http,目前支持 http、timer、api-gateway、api-gateway-basic

自定义命名空间

malagu:  cloud:    namespace:      name: xxxx # 默认值是 default

说明命名空间的其他属性配置方式类似。

自定义函数名

malagu:  cloud:    function:      name: xxxx # 默认值是 ${pkg.name}

说明函数的其他属性配置方式类似。

属性配置

malagu:  cloud:    namespace:      name:      description:    function:      name: ''      namespace:      handler:      publish:      l5Enable:      type:      codeSource:      description:      memorySize:      timeout:      runtime:      role:      clsLogsetId:      ClsTopicId:      env:      vpcConfig:        vpcId:        subnetId:      layers:        name:        version:      deadLetterConfig:        type:        name:        filterType:      publicNetConfig:        PublicNetStatus:          eipConfig:            eipStatus:    alias:      name:      functionName:      namespace:      description:      routingConfig:        additionalVersionWeights:          version:          weight:        addtionVersionMatchs:          version:          key:          method:          expression:    apiGateway:      usagePlan:        name:        environment:        desc:        maxRequestNum:        maxRequestNumPreSec:      strategy:        name:        environmentName:        strategy:      api:        name:        serviceTimeout:        protocol:        desc:        authType:        enableCORS:        businessType:        serviceScfFunctionName:        serviceWebsocketTransportFunctionName:        serviceScfFunctionNamespace:        serviceScfFunctionQualifier:        serviceWebsocketTransportFunctionNamespace:        serviceWebsocketTransportFunctionQualifier:        isDebugAfterCharge:        serviceScfIsIntegratedResponse:        isDeleteResponseErrorCodes:        responseSuccessExample:        responseFailExample:        authRelationApiId:        userType:        oauthConfig:          publicKey:          tokenLocation:          loginRedirectUrl:        responseErrorCodes:          code:          msg:          desc:          convertedCode:          needConvert:        requestConfig:          ApiRequestConfig:          path:          method:        requestParameters:          name:          desc:          position:          type:          defaultValue:          required:        RequestParameter:      service:        exclusiveSetName:        name:        protocol:        description:        netTypes:        ipVersion:        setServerName:        appIdType:      release:        environmentName:        desc:  customDomain:    name:     isDefaultMapping:    certificateId:    protocol:    netType:    pathMappingSet:      path:      Environment:



官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/149662.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云对象存储图片标签

    简介 本文档提供关于图片标签相关的 API 概览以及 SDK 示例代码。 API 说明 图片标签 图片标签功能通过借助持久化处理接口,实现对对象存储(Cloud Object Storage,COS)存量数据的图片标签识别。 图片标签 功能说明 图片标签功能通过借助对象存储的持久化处理接口,实现对 COS 存量数据的图片标签识别,返回图片中置信度较高的主题标…

    腾讯云 2023年12月9日
  • 腾讯云TDSQL-C MySQL版设置会话级连接池

    本文为您介绍如何设置会话级连接池功能。 开启连接池功能 1. 登录 TDSQL-C MySQL 版控制台,在集群列表,选择已开启代理的集群,单击集群 ID,进入集群管理页面。2. 在集群管理页面 > 集群详情 > 数据库代理后单击详情,或在集群管理页面直接选择数据库代理 tab 页进入数据库代理管理页面。3. 在数据库代理管理页,选择访问策略,找…

    腾讯云 2023年12月9日
  • 腾讯云容器服务TKE 挂载 CFS-Turbo同尘科技

    操作场景 为 TKE 集群挂载 CFS Turbo 类型存储,可以通过安装 kubernetes-csi-tencentloud 组件来实现。该组件基于私有协议将腾讯云 CFS Turbo 文件系统挂载到工作负载,目前仅支持静态配置。CFS 存储类型请参考 文件存储类型及性能规格。 前提条件 已创建 TKE 集群或已在腾讯云自建 Kubernetes 集群,…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云轻量应用服务器使用 VNC 方式登录 Windows 实例云小二

    操作场景 VNC 登录是腾讯云为用户提供的一种通过 Web 浏览器远程连接实例的方式。在没有安装或者无法使用远程桌面连接工具,以及通过其他方式均无法登录的情况下,用户可以通过 VNC 登录到实例,观察实例状态,并进行基本的管理操作。 使用限制 VNC 暂时不支持复制粘贴功能、中文输入法以及文件的上传、下载。VNC 登录实例时,需要使用主流浏览器,例如 Chr…

    2023年12月9日
  • 腾讯云容器镜像服务个人版迁移至企业版完全指南同尘

    操作场景 当前容器镜像服务 TCR 同时提供个人版服务和企业版服务。个人版服务面向个人开发者,仅提供容器镜像存储分发的基础功能。企业版服务可为企业客户提供安全、独享的高性能云原生应用制品托管分发服务。个人版与企业版服务区别可参见 规格说明。本文主要介绍企业客户如何将容器镜像数据及业务配置从个人版迁移至企业版,实现业务的平滑迁移。 前提条件 从个人版服务迁移至…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。