-
Notifications
You must be signed in to change notification settings - Fork 3
/
s.yaml
111 lines (107 loc) · 5.45 KB
/
s.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# ------------------------------------
# If you need English case, you can refer to [s_en.yaml] file
# ------------------------------------
# 欢迎您使用阿里云函数计算 FC 组件进行项目开发
# 组件仓库地址:https://github.com/devsapp/fc
# 组件帮助文档:https://github.com/devsapp/fc3/blob/master/docs/zh/readme.md
# Yaml参考文档:https://github.com/devsapp/fc3/blob/master/docs/zh/yaml/readme.md
# 关于Serverless Devs和FC组件的关系、如何声明/部署多个函数等问题,可以参考文档:https://github.com/devsapp/fc3/blob/master/docs/zh/tips.md
# 关于如何做CICD等问题,可以参考:https://www.serverless-devs.com/serverless-devs/cicd
# 关于如何进行环境划分等问题,可以参考:https://www.serverless-devs.com/serverless-devs/extend
# 更多函数计算案例,可参考:https://github.com/devsapp/awesome/
# 有问题快来钉钉群问一下吧:33947367
# ------------------------------------
edition: 3.0.0
name: start-fc-acme
# access 是当前应用所需要的密钥信息配置:
# 密钥配置可以参考:https://www.serverless-devs.com/serverless-devs/command/config
# 密钥使用顺序可以参考:https://www.serverless-devs.com/serverless-devs/tool#密钥使用顺序与规范
access: "{{ access }}" # 秘钥别名
vars:
region: "{{ region }}"
functionName: "{{ functionName }}"
environmentVariables: # 为函数配置环境变量
# 函数部署
ALICLOUD_ACCOUNT_ID: ${config('AccountID')}
ALIBABA_CLOUD_ACCESS_KEY_ID: ${env(Ali_Key)}
ALIBABA_CLOUD_ACCESS_KEY_SECRET: ${env(Ali_Secret)}
# 证书申请
DNS_TYPE: 'dns_ali'
Ali_Key: ${env(Ali_Key)}
Ali_Secret: ${env(Ali_Secret)}
# # 腾讯云
# DNS_TYPE: 'dns_dp'
# DP_Id: ${env(DP_Id)}
# DP_Key: ${env(DP_Key)}
# # CF
# DNS_TYPE: 'dns_cf'
# CF_Token: ${env(CF_Token)}
# CF_Account_ID: ${env(CF_Account_ID)}
# logConfig:
# enableRequestMetrics: true
# enableInstanceMetrics: true
# logBeginRule: None
# project: aliyun-fc-${vars.region}
# logstore: function-log
# ossMountConfig:
# mountPoints:
# - bucketName: "fc-oss"
# endpoint: "http://oss-${vars.region}-internal.aliyuncs.com"
# bucketPath: '/fc-acme'
# mountDir: /mnt/auto/nginx
# readOnly: false
resources:
fc-invoke-acme:
# 如果只想针对 fc-invoke-acme 下面的业务进行相关操作,可以在命令行中加上 fc-invoke-acme,例如:
# 只对 fc-invoke-acme 进行构建:s fc-invoke-acme build
# 如果不带有 fc-invoke-acme ,而是直接执行 s build,工具则会对当前Yaml下,所有和 fc-invoke-acme 平级的业务模块(如有其他平级的模块,例如下面注释的next_function),按照一定顺序进行 build 操作
component: fc3 # 组件名称,Serverless Devs 工具本身类似于一种游戏机,不具备具体的业务能力,组件类似于游戏卡,用户通过向游戏机中插入不同的游戏卡实现不同的功能,即通过使用不同的组件实现不同的具体业务能力
actions: # 自定义执行逻辑,关于actions 的使用,可以参考:https://www.serverless-devs.com/serverless-devs/yaml#行为描述
pre-deploy: # 在deploy之前运行
- run: cd acme.sh && bash acme.sh --install --home ../acmenas --accountemail \"my@example.com\" --nocron
path: ./code
- run: pip3 install -r alibabacloud_fc/requirements.txt -t . # 要执行的系统命令,类似于一种钩子的形式
path: ./code # 执行系统命令/钩子的路径
props:
region: ${vars.region} # 关于变量的使用方法,可以参考:https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC
functionName: ${vars.functionName} # 函数名
description: 'hello world by serverless devs'
runtime: "python3.10"
code: ./code
handler: index.handler
memorySize: 128
timeout: 300
# 其他配置
environmentVariables: ${vars.environmentVariables} # 为函数配置环境变量
role: 'AliyunFCDefaultRole'
# ossMountConfig: ${vars.ossMountConfig}
# logConfig: ${vars.logConfig}
triggers:
- triggerName: timerTrigger
triggerType: timer
description: ''
qualifier: LATEST
triggerConfig:
payload: '{"region": "${vars.region}", "domain": "a.domain.com", "function": "website-a"}'
cronExpression: CRON_TZ=Asia/Shanghai 0 0 14 * * FRI
enable: false
- triggerConfig:
payload: '{"region": ${vars.region}, "domain": "b.domain.com", "function": "b"}'
cronExpression: CRON_TZ=Asia/Shanghai 0 0 14 * * FRI
enable: false
triggerName: trigger-b
description: ''
qualifier: LATEST
triggerType: timer
# triggers:
# - triggerName: httpTrigger # 触发器名称
# triggerType: http # 触发器类型
# description: 'xxxx'
# qualifier: LATEST # 触发服务的版本
# triggerConfig:
# authType: anonymous # 鉴权类型,可选值:anonymous、function
# disableURLInternet: false # 是否禁用公网访问 URL
# methods: # HTTP 触发器支持的访问方法,可选值:GET、POST、PUT、DELETE、HEAD
# - GET
# - POST
#END