Bake 標準函式庫函數
目錄
| 名稱 | 描述 |
|---|---|
absolute | 如果給定數字為負數,則回傳其正值;否則回傳給定的數字。 |
add | 回傳兩個給定數字的總和。 |
以及 | 將邏輯 AND 運算套用於給定的布林值。 |
base64decode | 解碼包含 base64 序列的字串。 |
base64encode | 將字串編碼為 base64 序列。 |
basename | 回傳路徑中的最後一個元素。 |
bcrypt | 使用 Blowfish 密碼演算法計算給定字串的雜湊值。 |
byteslen | 回傳給定緩衝區中的位元組總數。 |
bytesslice | 從給定緩衝區中提取子切片。 |
can | 嘗試評估其第一個參數中給定的運算式。 |
ceil | 回傳大於或等於給定值的最小整數。 |
chomp | 移除給定字串末尾的一個或多個換行字元。 |
chunklist | 將單一列表拆分為多個列表,其中每個列表最多包含指定數量的元素。 |
cidrhost | 計算給定 IP 網路位址前綴內的完整主機 IP 位址。 |
cidrnetmask | 將 CIDR 表示法中給定的 IPv4 位址前綴轉換為子網路遮罩位址。 |
cidrsubnet | 計算給定 IP 網路位址前綴內的子網路位址。 |
cidrsubnets | 一次計算多個連續的子網路位址,而不是僅計算單一子網路延伸。 |
coalesce | 回傳給定參數中第一個非 null 的值;若沒有非 null 的參數,則引發錯誤。 |
coalescelist | 回傳給定序列中第一個長度大於零的序列。 |
compact | 從給定的字串列表中移除所有空字串元素。 |
concat | 將所有給定的列表或元組串接成單一序列,並保留輸入順序。 |
contains | 如果給定值存在於給定的列表、元組或集合中,則回傳 true,否則回傳 false。 |
convert | 將值轉換為指定的型別約束,使用 HCL 的 customdecode 擴充功能來支援型別運算式。 |
csvdecode | 將給定的字串解析為逗號分隔值(依據 RFC 4180 定義),並回傳代表該資料表的物件對映 (map),使用第一列作為標題列來定義物件屬性。 |
dirname | 回傳路徑的目錄。 |
distinct | 從給定列表中移除所有重複值,並保留剩餘元素的順序。 |
divide | 將第一個給定數字除以第二個數字。 |
element | 從給定的列表或元組中回傳指定索引的元素;如果索引大於元素數量,則對索引執行取模運算。 |
equal | 如果兩個給定值相等,則回傳 true,否則回傳 false。 |
flatten | 將列表、集合或元組值轉換為元組,方法是將任何本身為序列的給定元素,替換為所有嵌套元素串接後的扁平化元組。 |
floor | 回傳小於或等於給定值的最大整數。 |
format | 透過將格式化動詞套用於一系列參數來建構字串,語法類似於 C 語言的「printf」函式。 |
formatdate | 將以 RFC 3339 語法給出的時間戳記格式化為格式字串中所描述的其他機器導向時間語法。 |
formatlist | 透過將格式化動詞套用於一系列參數來建構字串列表,語法類似於 C 語言的「printf」函式。 |
greaterthan | 若且唯若第二個數字大於第一個數字時,才回傳 true。 |
greaterthanorequalto | 若且唯若第二個數字大於或等於第一個數字時,才回傳 true。 |
hasindex | 如果給定的集合可以使用給定的鍵進行索引且不會產生錯誤,則回傳 true,否則回傳 false。 |
homedir | 回傳目前使用者的家目錄。 |
indent | 在給定字串的每個換行字元後增加指定數量的空格。 |
index | 從給定集合中回傳指定鍵的元素;如果沒有該元素,則引發錯誤。 |
indexof | 在列表中尋找給定值的元素索引。 |
int | 捨棄給定數字的任何小數部分。 |
join | 使用分隔符號將所有給定列表的元素串接在一起,產生單一字串。 |
jsondecode | 將給定的字串解析為 JSON,並回傳對應於該 JSON 文件所描述的值。 |
jsonencode | 回傳包含給定值之 JSON 表示法的字串。 |
keys | 以字典順序回傳給定對映 (map) 的鍵列表。 |
length | 回傳給定集合中的元素數量。 |
lessthan | 若且唯若第二個數字小於第一個數字時,才回傳 true。 |
lessthanorequalto | 若且唯若第二個數字小於或等於第一個數字時,才回傳 true。 |
log | 回傳給定數字以給定為底的對數。 |
lookup | 從給定對映中回傳指定鍵的元素值;如果沒有該元素,則回傳預設值。 |
lower | 回傳將所有 Unicode 字母轉換為小寫後的給定字串。 |
max | 回傳所有給定數字中的數值最大者。 |
md5 | 計算給定字串的 MD5 雜湊值,並使用十六進位數字進行編碼。 |
merge | 將給定對映中的所有元素合併為單一對映,或將給定物件的屬性合併為單一物件。 |
min | 回傳所有給定數字中的數值最小者。 |
modulo | 將第一個給定數字除以第二個數字,並回傳餘數。 |
multiply | 回傳兩個給定數字的乘積。 |
negate | 將給定數字乘以 -1。 |
not | 將邏輯 NOT 運算套用於給定的布林值。 |
notequal | 如果兩個給定值相等,則回傳 false,否則回傳 true。 |
或 | 將邏輯 OR 運算套用於給定的布林值。 |
parseint | 以給定的進位制解析給定字串為數字;如果字串包含無效字元,則引發錯誤。 |
pow | 回傳給定數字的指定次方(指數運算)。 |
range | 回傳在特定範圍內均勻分佈的數字列表。 |
regex | 將給定的正規表示式模式套用於給定字串,並回傳關於單一匹配的資訊;如果沒有匹配,則引發錯誤。 |
regex_replace | 將給定的正規表示式模式套用於給定字串,並將所有匹配項替換為給定的替換字串。 |
regexall | 將給定的正規表示式模式套用於給定字串,並回傳關於所有不重疊匹配項的資訊列表;如果沒有匹配,則回傳空列表。 |
replace | 將給定字串中所有給定子字串的實例替換為給定的替換字串。 |
reverse | 回傳將所有 Unicode 字元以相反順序排列後的給定字串。 |
reverselist | 回傳元素以相反順序排列後的給定列表。 |
rsadecrypt | 解密 RSA 加密過的密文。 |
sanitize | 將所有非字母數字字元替換為底線,僅保留對於 Bake 目標名稱有效的字元。 |
sethaselement | 如果給定集合包含給定元素,則回傳 true,否則回傳 false。 |
setintersection | 回傳所有給定集合的交集。 |
setproduct | 計算兩個或多個集合的笛卡爾積。 |
setsubtract | 回傳兩個給定集合的相對補集。 |
setsymmetricdifference | 回傳兩個給定集合的對稱差集。 |
setunion | 回傳所有給定集合的聯集。 |
sha1 | 計算給定字串的 SHA1 雜湊值,並使用十六進位數字進行編碼。 |
sha256 | 計算給定字串的 SHA256 雜湊值,並使用十六進位數字進行編碼。 |
sha512 | 計算給定字串的 SHA512 雜湊值,並使用十六進位數字進行編碼。 |
signum | 如果給定數字為零則回傳 0,如果為正數回傳 1,如果為負數則回傳 -1。 |
slice | 提取給定列表或元組值的子切片。 |
sort | 對給定列表的元素套用字典排序。 |
split | 透過在給定分隔符號子字串的所有實例處拆分給定字串,產生一個或多個字串的列表。 |
strlen | 回傳給定字串中的 Unicode 字元(技術上為:字形簇)數量。 |
substr | 從給定字串中提取子字串。 |
subtract | 回傳兩個給定數字之間的差值。 |
timeadd | 將給定持續時間字串所代表的持續時間,加入到給定的 RFC 3339 時間戳記字串中,並回傳另一個 RFC 3339 時間戳記。 |
timestamp | 回傳目前日期和時間的字串表示法。 |
title | 將每個非字母和非數字字元後的一個字母替換為其對應的大寫字母。 |
trim | 從給定字串的開頭和結尾移除 "cutset" 中連續的字元序列。 |
trimprefix | 如果存在,則從給定字串的開頭移除給定前綴。 |
trimspace | 從給定字串的開頭和結尾移除任何連續的空格字元(由 Unicode 定義)。 |
trimsuffix | 如果存在,則從給定字串的開頭移除給定後綴。 |
try | 嘗試按順序評估其參數的變參函式,直到有一個成功為止;若成功則回傳該結果,若全部失敗則回傳錯誤。 |
upper | 回傳將所有 Unicode 字母轉換為大寫後的給定字串。 |
urlencode | 對給定字串套用 URL 編碼。 |
uuidv4 | 產生並回傳標準十六進位字串格式的 Type-4 UUID。 |
uuidv5 | 產生並回傳標準十六進位字串格式的 Type-5 UUID。 |
values | 依據鍵或屬性名稱的字典順序,回傳給定對映的元素值或給定物件的屬性值。 |
zipmap | 從鍵列表和對應的值列表中建構一個對映 (map),這兩個列表必須長度相同。 |
範例
add
# docker-bake.hcl
target "webapp-dev" {
dockerfile = "Dockerfile.webapp"
tags = ["docker.io/username/webapp:latest"]
args = {
buildno = "${add(123, 1)}"
}
}