// Simple predicates
'tacocat'.startsWith('taco')

// Parameterized predicates over structured data
account.balance >= transaction.withdrawal

// JSON objects
{'sub': '12345678',
 'aud': 'example2.cel.dev',
 'iss': 'https://example1.cel.dev/jwt-issuer'}

// Strongly typed objects
common.GeoPoint{ latitude: 10.0, longitude: -5.5 }

一般運算語言 (CEL) 是一種運算式語言,具備快速、可攜性,且能在著重效能的應用程式中安全執行。CEL 能夠嵌入含有應用程式專屬擴充功能的應用程式,非常適合用來擴充應用程式可能已使用的宣告式設定。

使用 CEL 來處理 API 呼叫的清單篩選器、通訊協定緩衝區的驗證限制,以及 API 要求的授權規則。

針對重要效能路徑 (從奈秒到微秒) 加速評估運算式。
開發人員易於使用,並以通用語法搭配多個 Google 和外部系統使用。
支援子設定和擴充功能,可輕鬆嵌入並依設定和政策規定調整。
不會擷取完整作業,且只會存取主機應用程式提供的資料。

CEL 的設計宗旨是要以安全又快速 (奈秒到微秒) 的可預測成本進行評估,因此非常適合用於重要效能的應用程式。CEL 運算式特別適合用於述詞邏輯和簡易資料轉換。

在經常評估運算式,但很少修改的應用程式中,CEL 的使用最有效率。舉例來說,根據安全性政策評估 HTTP 要求是 CEL 的絕佳用途。CEL 安全性政策運算式會有一次性設定費用來驗證運算式,然後頻繁地評估費用,費用可忽略不計。

仍然有疑問嗎?歡迎參閱 CEL 總覽和語言定義,或直接說出來向我們提問!我們 很樂意幫忙。

想要協助 CEL 專案嗎?對我們的開放原始碼和說明文件做出貢獻。我們很樂意提供協助!