前言

通过本组件,您可以简单快速的将Express项目部署到线上。

使用

最简使用方法

模版拉取:

  1. s init express

其中Yaml的默认配置为:

  1. ExpressComponent:
  2. Component: express
  3. Provider: alibaba
  4. Extends:
  5. deploy:
  6. - Hook: npm install --production
  7. Path: ./src
  8. Pre: true
  9. Properties:
  10. Region: 'cn-hangzhou'
  11. CodeUri: './src'

系统默认bootstrap内容:

  1. #!/usr/bin/env bash
  2. export PORT=9000
  3. npm run start

完整Yaml示例

  1. ExpressComponent:
  2. Component: express
  3. Provider: alibaba
  4. Extends:
  5. deploy:
  6. - Hook: npm install --production
  7. Path: ./src
  8. Pre: true
  9. Properties:
  10. Region: 'cn-hangzhou'
  11. # CodeUri: 本地路径
  12. # CodeUri:
  13. # Src: 本地路径
  14. # Exclude:
  15. # - path
  16. # Include:
  17. # - path
  18. # CodeUri:
  19. # Bucket: function code包的bucket name
  20. # Object: code zip包的object name
  21. CodeUri:
  22. Bucket: function code包的bucket name
  23. Src: 本地路径
  24. Exclude:
  25. - path
  26. Include:
  27. - path
  28. Environment:
  29. - Key: Environmentkey
  30. Value: EnvironmentValue
  31. Log:
  32. LogStore: loghub中的logstore名称
  33. Project: loghub中的project名称
  34. Detail:
  35. Service:
  36. Name: 服务名
  37. Description: 服务描述
  38. InternetAccess: 访问公网
  39. Role: 授予函数计算所需权限的RAM role
  40. Vpc:
  41. SecurityGroupId: 安全组
  42. VSwitchIds:
  43. - 一个或多个VSwitch ID
  44. VpcId: VPC ID
  45. Nas:
  46. Use--package-type pip oss2 pymysqlrId: userID
  47. GroupId: groupID
  48. MountPoints:
  49. - ServerAddr: adasdasdas
  50. MountDir: ./ssssss
  51. Tags:
  52. - Key: 标签名
  53. Value: 标签值
  54. - Key: 标签名
  55. Value: 标签值
  56. Function: 函数名
  57. Name: 函数名
  58. Description: 函数描述
  59. MemorySize: function的内存规格
  60. Timeout: function运行的超时时间
  61. Triggers:
  62. - Name: TriggerNameHttp
  63. Parameters:
  64. AuthType: ANONYMOUS
  65. InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色
  66. Methods:
  67. - GET
  68. - POST
  69. - PUT
  70. Domains:
  71. - Domain: AUTO/或者您的网址
  72. Protocol:
  73. - HTTP
  74. - HTTPS
  75. CertConfig:
  76. CertName: 'CertName'
  77. PrivateKey: './certificates/privateKey.pem'
  78. Certificate: './certificates/certificate.pem'
  79. Routes:
  80. - Path: '/a'
  81. Qualifier: Prod # 版本(可选)
  82. - Path: '/a'
  83. Qualifier: Prod # 版本(可选)

详细使用方法

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Region | true | Enum | 地域 |

| Log | false | Struct | log配置,function产生的log会写入这里配置的logstore |

| CodeUri | false(默认为./) | String/Struct | 代码位置 |

| Environment | false | Struct | 环境变量 |

| Domains | false | Struct/List | 自定义域名配置 |

| Detail | false | Struct | 详细配置 |

Region

参数取值:cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1, `cn-zhangjiakou-na62-a01

Log

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| LogStore | false | String | loghub中的logstore名称 |

| Project | false | String | loghub中的project名称 |

CodeUri

  • 直接填写路径
  • | 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Bucket | false | String | function code包的bucket name |

| Object | false | String | code zip包的object name |

| Exclude | false | List | 除去路径 |

| Include | false | List | 包括路径 |

  • | 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Bucket | false | String | function code包的bucket name |

| Src | false | String | 本地路径 |

| Exclude | false | List | 除去路径 |

| Include | false | List | 包括路径 |

Domains

  • | 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Domain | false | String | 域名 |

  • | 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Domain | false | String | 域名 |

| Protocol | false | List(HTTP,HTTPS) | 协议 |

| CertConfig | false | Struct | 域名证书 |

| Routes | false | Struct | 路径配置 |

CertConfig

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| CertName | false | String | 名称 |

| PrivateKey | false | String | 表示私钥 |

| Certificate | false | String | 表示证书 |

Routes

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Path | false | String | 路径 |

| Qualifier | false | String | service 版本 |

Detail

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Service | false | Struct | 服务 |

| Function | false | Struct | 函数 |

| Bootstrap | false | Struct | 启动配置 |

Service

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Name | false | String | service名称 |

| Description | false | String | service的简短描述 |

| InternetAccess | false | Boolean | 设为true让function可以访问公网 |

| Role | false | String | 授予函数计算所需权限的RAM role, 使用场景包含 1. 把 function产生的 log 发送到用户的 logstore 中 2. 为function 在执行中访问其它云资源生成 token |

| Vpc | false | Struct | vpc配置, 配置后function可以访问指定VPC |

| Nas | false | Struct | NAS配置, 配置后function可以访问指定NAS |

| Tag | false | List | 标签 |

Vpc

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| SecurityGroupId | false | String | 安全组ID |

| VSwitchIds | false | String | 一个或多个VSwitch ID |

| VpcId | false | String | VPC ID |

Nas

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| UserId | false | String | userID |

| GroupId | false | String | groupID |

| MountPoints | false | List | 挂载点 |

其中MountPoints为:

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| ServerAddr | false | String | NAS 服务器地址 |

| MountDir | false | String | 本地挂载目录 |

Tag

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Key | false | String | 标签名 |

| Value | false | String | 标签值 |

Function

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Name | false | String | function名称 |

| Description | false | String | function的简短描述 |

| MemorySize | false | String | function的内存规格 |

| Timeout | false | String | function运行的超时时间 |

| Triggers | false | List | 触发器 |

Triggers

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Name | true | String | 触发器名称 |

| Parameters | true | Struct | 参数内容 |

其中Parameters为:

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| AuthType | true | List | 鉴权类型,可选值:ANONYMOUS、FUNCTION |

| Methods | true | List | HTTP 触发器支持的访问方法 |

| Domains | false | String | 参数内容 |

| Enable | false | String | 表示是否启用该触发器。 |

| InvocationRole | false | String | 使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限 |

| Qualifier | false | String | service 版本 |

AuthType枚举:ANONYMOUSFUNCTION
Methods枚举:GETPOSTPUTDELETEHEAD
Domains类型为:

  • | 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Domain | false | String | 域名 |

  • | 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Domain | false | String | 域名 |

| Protocol | false | List(HTTP,HTTPS) | 协议 |

| CertConfig | false | Struct | 域名证书 |

| Routes | false | Struct | 路径配置 |

Bootstrap

| 参数名 | 必填 | 类型 | 参数描述 | | —- | —- | —- | —- |

| Port | false | Number | 启动端口 |

| Start | false | String | 启动指令 |