On this page
Config
Function 配置設定
Config 存放 Function 執行過程中會使用到的環境變數
、設定檔案
等運作時所使用的配置。
在 Function 初始化階段,根據設定 Syntixi 會自動將 Config 的內容放到對應環境變數或指定目錄下以 Function 存取使用。
如何建立 Config
純文字 (Literal)
可以使用 --from-literal <key>=<value>
來使用純文字建立設定檔,指令如下
syntixi config create --name db-config \
--from-literal MYSQL_ADDRESS='127.0.0.1:3306' \
--from-literal MYSQL_USER="root" \
--from-literal MYSQL_PASSWD="password"
建立的結果如下
apiVersion: core.syntixi.dev/v1
kind: Config
metadata:
name: db-config
namespace: default
spec:
data:
MYSQL_ADDRESS: MTI3LjAuMC4xOjMzMDY=
MYSQL_PASSWD: cGFzc3dvcmQ=
MYSQL_USER: cm9vdA==
檔案 (File)
如需使用檔案,則可以使用 --from-file <key>=<absolute-path-to-file>
來建立 Config。
以下示範,我們使用 OpenSSL 來為域名 example.com
生成 TLS 憑證檔案,然後使用生成的檔案建立 Config。
sudo openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout example.key -out example.crt -subj "/CN=example.com"
syntixi config create --name tls-cfg --type tls \
--from-file tls.key=example.key \
--from-file tls.crt=example.crt
結果如下
apiVersion: core.syntixi.dev/v1
kind: Config
metadata:
name: tls-cfg
namespace: default
spec:
data:
tls.crt: <BASE64 CONTENT>
tls.key: <BASE64 CONTENT>
type: tls
Function 如何使用 Config
您可以使用兩種方式來讓 Function 使用 Config 內的資料:
- 環境變數 (As Environment Variables)
- 檔案 (As Files)
環境變數
使用 Config 內容作為環境變數時,可以於創建 Function 時使用 --env-from-config <CONFIG_NAME>=<KEY>=<ENV_NAME>
以下為使用上面建立的 Config 來當作 Function pod 的環境變數
syntixi function create --name=config-demo --image=nginx \
--env-from-config db-config=MYSQL_ADDRESS=MYSQL_ASSRESS \
--env-from-config db-config=MYSQL_USER=MYSQL_USER \
--env-from-config db-config=MYSQL_PASSWD=MYSQL_PASSWD
檔案
使用 Config 內容以檔案形式存取時,可以於創建 Function 時使用 --file-from-config <CONFIG_NAME>=<KEY>=</absolute/path/to/file>
以下示範使用,將 Config 當作檔案放入 Function 容器內的 /opt/
路徑底下
syntixi function create --name=config-demo --image=nginx \
--file-from-config db-config=MYSQL_ADDRESS=/opt/MYSQL_ASSRESS \
--file-from-config db-config=MYSQL_USER=/opt/MYSQL_USER \
--file-from-config db-config=MYSQL_PASSWD=/opt/MYSQL_PASSWD
Was this page helpful?