Skip to content

Commit 8f8ff41

Browse files
authored
translate to chinese
1 parent 431f960 commit 8f8ff41

File tree

13 files changed

+3177
-0
lines changed

13 files changed

+3177
-0
lines changed

translations/cn/README.md

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
# openfaas-workshop
2+
3+
这是一个自定进度的研讨会,学习如何使用 OpenFaaS 构建、部署和运行无服务器函数。
4+
5+
![](https://github.com/openfaas/media/raw/master/OpenFaaS_Magnet_3_1_png.png)
6+
7+
在这个研讨会中,你将首先把 OpenFaaS 部署到你的笔记本电脑或使用 Docker for Mac 或 Windows 的远程集群。然后你将对 OpenFaaS 的用户界面、CLI 和函数商店进行测试。在用 Python 构建、部署和调用你自己的无服务器函数之后,你将继续学习以下内容:用 pip 管理依赖关系,通过安全secret处理 API 令牌,用 Prometheus 监控函数,异步调用函数以及将函数连接起来创建应用程序。实验的高潮是让你创建自己的 GitHub 机器人,可以自动响应问题。同样的方法可以通过 IFTTT.com 连接到在线事件流--这将使你能够建立机器人、自动回复器以及与社交媒体和物联网设备的集成。
8+
9+
最后,实验室涵盖了更多的高级主题,并给出了进一步学习的建议。
10+
11+
**译文**
12+
13+
* [日本語](./translations/ja)
14+
* [简体中文](./translations/cn)
15+
16+
## 免费学习,作为 GitHub 赞助商表示感谢
17+
18+
OpenFaaS 连同这些材料都是免费提供的,需要时间和精力来维护。
19+
20+
* 成为[OpenFaaS on GitHub](https://github.com/sponsor/openfaas)的赞助商。
21+
22+
## 要求
23+
24+
我们在[Lab 1](./lab1.md)中讲解了如何安装这些需求。请在参加讲师指导的研讨会之前做[Lab 1](./lab1.md)
25+
26+
* 函数将用 Python 语言编写,所以有编程或脚本经验者优先。
27+
* 安装推荐的代码编辑器/IDE [VSCode](https://code.visualstudio.com/download)
28+
* 对于 Windows,安装[Git Bash](https://git-scm.com/downloads)
29+
* 首选的操作系统。MacOS, Windows 10 Pro/Enterprise, Ubuntu Linux
30+
31+
Docker。
32+
33+
* Docker CE for [Mac](https://store.docker.com/editions/community/docker-ce-desktop-mac)/[Windows](https://store.docker.com/editions/community/docker-ce-desktop-windows) **边缘版**
34+
* Docker CE for Linux
35+
36+
> 注意:作为最后的手段,如果你有一台不兼容的 PC,你可以在<https://labs.play-with-docker.com/> 上运行该研讨会。
37+
38+
## 教员指导的研讨会
39+
40+
如果你正在参加一个由教师指导的研讨会,那么我们将分享一个链接,以加入 OpenFaaS Slack 社区。使用研讨会的指定频道来讨论评论、问题和建议。
41+
42+
## 挑选你的路线
43+
44+
在实验室 1 中,你将选择你的路线,然后在整个实验室中注意你所需要的特殊命令。
45+
46+
### Kubernetes
47+
48+
你也可以使用 OpenFaaS 学习 Kubernetes 上的 Serverless。
49+
50+
OpenFaaS 社区的建议是,你在生产中运行 Kubernetes,但你的所有知识都是可以转移的,函数也不必重新构建。
51+
52+
## [Lab 1 - Prepare for OpenFaaS](./lab1.md)
53+
54+
* 安装前提条件
55+
* 用 Kubernetes 建立一个单节点集群
56+
* Docker Hub 账户
57+
* OpenFaaS CLI
58+
* 部署 OpenFaaS
59+
60+
## [Lab 2 - Test things out](./lab2.md)
61+
62+
* 使用 UI 门户
63+
* 通过函数商店进行部署
64+
* 了解 CLI 的情况
65+
* 用 Prometheus 查找指标
66+
67+
## [Lab 3 - Introduction to Functions](./lab3.md)
68+
69+
* 架构或生成一个新的函数
70+
* 建立 astronaut-finder 函数
71+
*`pip`添加依赖性
72+
* 故障排除:找到容器的日志
73+
* 故障排除:用`write_debug`进行粗略输出
74+
* 使用自定义和第三方语言模板
75+
* 使用模板商店发现社区模板
76+
77+
## [Lab 4 - Go deeper with functions](./lab4.md)
78+
79+
* [通过环境变量注入配置](lab4.md#inject-configuration-through-environmental-variables)
80+
* 在部署时使用 yaml
81+
* 动态地使用 HTTP 上下文--查询字符串/头信息等
82+
* 安全性:只读的文件系统
83+
* [利用日志](lab4.md#making-use-of-logging)
84+
* [创建工作流](lab4.md#creat-workflows)
85+
* 在客户端串联函数
86+
* 从另一个函数中调用一个函数
87+
88+
## [Lab 5 - Create a GitHub bot](./lab5.md)
89+
90+
> 建立 `issue-bot`--GitHub 问题的自动回复者
91+
92+
* 获得一个 GitHub 账户
93+
* 用 ngrok 建立一个隧道
94+
* 创建一个 webhook 接收器`issue-bot`
95+
* 接收来自 GitHub 的 webhooks
96+
* 部署 SentimentAnalysis 函数
97+
* 通过 GitHub 的 API 应用标签
98+
* 完成函数
99+
100+
## [Lab 6 - HTML for your functions](./lab6.md)
101+
102+
* 从一个函数生成并返回基本的 HTML
103+
* 从磁盘读取并返回一个静态 HTML 文件
104+
* 与其他函数协作
105+
106+
## [Lab 7 - Asynchronous Functions](./lab7.md)
107+
108+
* 同步地与异步地调用一个函数
109+
* 查看队列工作者的日志
110+
111+
* 在 requestbin 和 ngrok 中使用`X-Callback-Url`
112+
113+
## [Lab 8 - Advanced Feature - Timeouts](./lab8.md)
114+
115+
*`read_timeout`调整超时时间
116+
* 适配长时间运行函数
117+
118+
## [Lab 9 - Advanced Feature - Auto-scaling](./lab9.md)
119+
120+
* 查看自动缩放的操作
121+
* 关于最小和最大副本的一些见解
122+
* 发现并访问本地 Prometheus
123+
* 执行和普罗米修斯查询
124+
* 使用 curl 调用一个函数
125+
* 观察自动缩放的启动
126+
127+
## [Lab 10 - Advanced Feature - Secrets](./lab10.md)
128+
129+
* 调整 issue-bot 以使用一个secret
130+
* 用 faas-cli 创建一个 Kubernetes secret
131+
* 在函数中访问secret
132+
133+
## [Lab 11 - Advanced feature - Trust with HMAC](./lab11.md)
134+
135+
* 使用 HMAC 对函数应用信任
136+
137+
你可以从第一个实验室[Lab 1](lab1.md)开始。
138+
139+
## 拆解/清理
140+
141+
你可以找到如何停止和删除 OpenFaaS[这里](https://docs.openfaas.com/deployment/troubleshooting/#uninstall-openfaas)
142+
143+
## 接下来的步骤
144+
145+
如果你在一个教师指导的研讨会上,并且已经完成了实验,你可能想回到实验室,编辑/修改代码和值,或者进行一些你自己的实验。
146+
147+
以下是一些后续任务/主题的想法。
148+
149+
### OpenFaaS 云
150+
151+
试试 OpenFaaS 的多用户管理体验--在社区集群上,或者通过托管你自己的 OpenFaaS 云。
152+
153+
* [Docs: OpenFaaS Cloud](https://docs.openfaas.com/openfaas-cloud/intro/)
154+
155+
### TLS
156+
157+
* [用 Kubernetes Ingress 在你的网关上启用 HTTPS](https://docs.openfaas.com/reference/ssl/kubernetes-with-cert-manager/)
158+
159+
### CI/CD
160+
161+
设置 Jenkins、Google Cloud Build 或 GitLab,使用 OpenFaaS CLI 构建和部署你自己的函数。
162+
163+
* [CI/CD 介绍](https://docs.openfaas.com/reference/cicd/intro/)
164+
165+
### 存储/数据库
166+
167+
* [用 Minio 尝试开源对象存储](https://blog.alexellis.io/openfaas-storage-for-your-functions/)
168+
169+
* [尝试用 Mongo 存储数据的 OpenFaaS](https://blog.alexellis.io/serverless-databases-with-openfaas-and-mongo/)
170+
171+
### 仪器仪表/监控
172+
173+
* [探索 Prometheus 中可用的指标](https://docs.openfaas.com/architecture/metrics/#monitoring-functions)
174+
175+
### 其他博文和教程
176+
177+
* [OpenFaaS 博客上的教程](https://www.openfaas.com/blog/)
178+
179+
* [社区博客文章](https://github.com/openfaas/faas/blob/master/community.md)
180+
181+
### 附录
182+
183+
[附录](./appendix.md)包含一些额外的内容。
184+
185+
## Acknowledgements
186+
187+
感谢@iyovcheva, @BurtonR, @johnmccabe, @laurentgrangeau, @stefanprodan, @kenfdev, @templum & @rgee0 对实验室的贡献、测试和翻译。

translations/cn/lab1.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Lab 1 - 为 OpenFaaS 做准备
2+
3+
<img src="https://github.com/openfaas/media/raw/master/OpenFaaS_Magnet_3_1_png.png" width="500px">
4+
5+
OpenFaaS 需要一个[Kubernetes](https://kubernetes.io)集群来运行。你可以使用一个单节点集群或多节点集群,不管是在你的笔记本电脑上还是在云端。
6+
7+
任何 OpenFaaS 函数的基本原件都是一个 Docker 镜像,它是使用`faas-cli`工具链构建的。
8+
9+
## 前提条件
10+
11+
让我们来安装 Docker、OpenFaaS CLI 以及设置 Kubernetes。
12+
13+
### Docker
14+
15+
适用于 Mac
16+
17+
- [Docker CE for Mac Edge Edition](https://store.docker.com/editions/community/docker-ce-desktop-mac)
18+
19+
适用于 Windows
20+
21+
- 仅使用 Windows 10 Pro 或企业版
22+
- 安装[Docker CE for Windows](https://store.docker.com/editions/community/docker-ce-desktop-windows)
23+
24+
> 请确保通过使用 Windows 任务栏通知区的 Docker 菜单来使用**Linux**容器的 Docker 守护程序。
25+
26+
- 安装[Git Bash](https://git-scm.com/downloads)
27+
28+
当你安装 git bash 时,选择以下选项。`install UNIX commands``use true-type font`
29+
30+
> 注意:请在所有步骤中使用*Git Bash*:不要试图使用*PowerShell**WSL**Bash for Windows*
31+
32+
Linux - Ubuntu 或 Debian
33+
34+
- Docker CE for Linux
35+
36+
> 你可以从[Docker Store]<https://store.docker.com>)安装 Docker CE。
37+
38+
注意:作为最后的手段,如果你有一台不兼容的 PC,你可以在<https://labs.play-with-docker.com/>上面体验。
39+
40+
### OpenFaaS CLI
41+
42+
你可以使用官方的 bash 脚本来安装 OpenFaaS CLI,`brew`也可以使用,但可能会落后一到两个版本。
43+
44+
在 MacOS 或 Linux 下,在终端运行以下程序。
45+
46+
```sh
47+
# MacOS users may need to run "bash" first if this command fails
48+
$ curl -sLSf https://cli.openfaas.com | sudo sh
49+
```
50+
51+
对于 Windows,在*Git Bash*中运行这个。
52+
53+
```sh
54+
curl -sLSf https://cli.openfaas.com | sh
55+
```
56+
57+
> 如果你遇到任何问题,你可以从[releases page](https://github.com/openfaas/faas-cli/releases)手动下载最新的`faas-cli.exe`。你可以把它放在本地目录或`C:\Windows\`路径中,这样它就可以从命令提示符中获得。
58+
59+
我们将使用`faas-cli`来搭建新的函数,构建、部署和调用函数。你可以通过`faas-cli --help`找到 cli 的可用命令。
60+
61+
测试 `faas-cli`。打开一个终端或 Git Bash 窗口,键入
62+
63+
```sh
64+
faas-cli help
65+
faas-cli version
66+
```
67+
68+
## 配置 Docker Hub
69+
70+
注册一个 Docker Hub 账户。[Docker Hub](https://hub.docker.com)允许你在互联网上发布你的 Docker 镜像,以便在多节点集群上使用或与更广泛的社区分享。我们将在研讨会期间使用 Docker Hub 来发布我们的函数。
71+
72+
你可以在这里注册。[Docker Hub](https://hub.docker.com)
73+
74+
打开一个终端或 Git Bash 窗口,用你上面注册的用户名登录 Docker Hub。
75+
76+
```sh
77+
docker login
78+
```
79+
80+
> 注意:来自社区的提示--如果你在 Windows 机器上试图运行这个命令时遇到错误,那么点击任务栏中的 Docker for Windows 图标,在那里登录 Docker,而不是 `登录/创建 Docker ID`
81+
82+
- 为新镜像设置你的 OpenFaaS 前缀
83+
84+
OpenFaaS 镜像存储在 Docker 注册表或 Docker Hub 中,我们可以设置一个环境变量,使你的用户名自动添加到你创建的新函数中。这将在研讨会过程中为你节省一些时间。
85+
86+
编辑`~/.bashrc``~/.bash_profile`--如果该文件不存在,则创建它。
87+
88+
现在添加以下内容--按照你上面看到的 URL 进行修改。
89+
90+
```sh
91+
export OPENFAAS_PREFIX="" # Populate with your Docker Hub username
92+
```
93+
94+
### 设置一个单节点集群
95+
96+
实验室使用 Kubernetes,Swarm 已经不再被 OpenFaaS 社区支持。有些实验室可以用于 faasd,但你可能需要改变命令,而且当使用 faasd 的时候,我们不提供对该实验室的支持。
97+
98+
- Kubernetes。[Lab 1b](./lab1b.md)

translations/cn/lab10.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Lab 10 - 高级函数 - secret
2+
3+
<img src="https://github.com/openfaas/media/raw/master/OpenFaaS_Magnet_3_1_png.png" width="500px"></img>
4+
5+
在开始本实验室之前,为你的文件创建一个新的文件夹。由于本实验室是建立在先前的实验室基础上的,因此请复制 lab5。
6+
7+
```plain
8+
$ cp -r lab5 lab10\
9+
&& cd lab10
10+
```
11+
12+
## 使用secret
13+
14+
[实验室 5](./lab5.md)研究了`issue-bot`如何从环境变量(`auth_token`)获得 GitHub 的个人访问令牌。 另一种方法是使用**机密**来存储敏感信息。
15+
16+
来自 Docker 文档。
17+
> ... secret是一团数据,如密码、SSH 私钥、SSL 证书或其他数据,不应通过网络传输或未经加密存储在 Docker 文件或应用程序的源代码中。
18+
19+
这是一个比环境变量更安全的选择。环境变量更容易使用,但最适合于非保密的配置项目。 似乎很适合用于存储`auth_token`值。
20+
21+
请参阅[docs](https://docs.openfaas.com/reference/secrets/)中关于secret的更多信息和它的设计。
22+
23+
### 创建一个secret
24+
25+
> secret名称必须遵循 DNS-1123 惯例,由小写字母数字字符或'-'组成,并且必须以一个字母数字字符开始和结束
26+
27+
从一个终端运行以下命令。
28+
29+
```plain
30+
$ echo -n <auth_token> | faas-cli secret create auth-token
31+
```
32+
33+
测试secret是否被创建。
34+
35+
```plain
36+
$ faas-cli secret ls
37+
```
38+
> 注意:请记住,`-g`标志可以在网关之间轻松切换。 这也适用于secret。
39+
40+
```plain
41+
kubectl get secret auth-token -n openfaas-fn -o json
42+
```
43+
44+
> 注意:如果你在远程网关上部署你的函数,确保你在你用于网关的虚拟机上创建你的secret。
45+
46+
当secret被函数挂载时,它将以文件形式出现在`/var/openfaas/secrets/auth-token`下。这可以由`handler.py`读取,以获得 GitHub 的*个人访问令牌*
47+
48+
### 更新 issue-bot.yml
49+
50+
用一个指令取代对`env.yml`的引用,使`auth-token`的secret对函数可用。
51+
52+
```yml
53+
provider:
54+
name: openfaas
55+
gateway: http://127.0.0.1:8080
56+
57+
functions:
58+
issue-bot:
59+
lang: python3
60+
handler: ./issue-bot
61+
image: <your-username>/issue-bot
62+
environment:
63+
write_debug: true
64+
gateway_hostname: "gateway.openfaas"
65+
positive_threshold: 0.25
66+
secrets:
67+
- auth-token
68+
```
69+
70+
### 更新`issue-bot`函数
71+
72+
函数处理程序需要改变,以使其读取`auth-token`secret,而不是环境变量。 这只是一个单行的改动,在这里。
73+
74+
python
75+
g = Github(os.getenv("auth_token"))
76+
```plain
77+
被替换为
78+
```python
79+
with open("/var/openfaas/secrets/auth-token", "r") as authToken:
80+
g = Github(authToken.read())
81+
```
82+
83+
> 完整的源代码可在[issue-bot-secrets/bot-handler/handler.py](./issue-bot-secrets/bot-handler/handler.py)
84+
85+
* 构建和部署
86+
87+
使用 CLI 来构建和部署该函数。
88+
89+
```plain
90+
$ faas-cli up -f issue-bot.yml
91+
```
92+
93+
现在转到[Lab 11](lab11.md)

0 commit comments

Comments
 (0)