使用行內程式碼建立函數工作量
您可以使用行內程式碼來建立函數。 您的程式碼與您的函數一起儲存。 您可以從主控台或使用 CLI 來建立這種類型的功能。
程式碼組合是代表函數碼的檔案集合。 這個程式碼組合會注入執行時期儲存器中。 您的程式碼組合由 Code Engine 建立,並儲存在儲存器登錄中或與函數一起列入。 程式碼組合不是 Open Container Initiative (OCI) 標準儲存器映像檔。
使用主控台行內建立函數
從主控台建立具有行內程式碼的函數。
- 開啟 Code Engine 主控台。
- 選擇「開始建立」。
- 請從可用專案清單中選取一個專案。 您也可以 建立新的。 您必須選取專案才能建立函數。
- 選擇功能。
- 輸入函數名稱;例如,
myfunction。 請為您的函式取一個在該專案中具有唯一性的名稱。 - 選取函數碼的 執行時期映像檔。 如需相關資訊,請參閱 執行時期。
- 選取此選項,將您的程式碼指定為內嵌程式碼包。 當您選取這個選項時,會以所選執行時期的範例程式碼組合來建立您的函數。 您可以在建立函數之後編輯範例程式碼。 程式碼組合與函數一起行內儲存。
- 指定資源資訊,包括 CPU 和記憶體組合 及 縮減延遲。
- 選擇性地指定 自訂網域 或 環境變數。 您可以稍後新增這些選項。
- 按一下建立。
- 在功能狀態變更為 備妥之後,您可以測試功能。 按一下 測試功能,然後按一下 傳送要求。 若要在網頁中開啟功能,請按一下功能 URL。
- 您也可以在「編輯器」視窗中變更函數碼。 當您重新部署函數時,程式碼會行內儲存。
您可以按一下 測試功能,然後按一下 傳送要求,來呼叫您的功能。
您可以執行 function get 指令並搭配 --save 選項,來擷取用來建立任何行內函數的程式碼。 例如,ibmcloud ce function get --name myfunction --save hellofun2.js。
使用 CLI 建立具有行內程式碼的函數
使用 ibmcloud ce function create 指令,透過 CLI 建立內含程式碼的函數。 如需選項的完整清單,請參閱 ibmcloud ce function create 指令。
開始之前
- 設定 Code Engine CLI 環境。
- 建立並使用專案。
此範例使用名為 main.js 的程式檔。 您可以使用下列程式碼範例來建立 main.js 檔案,也可以替換您自己的程式碼。
/**
* The `main` function is the entry-point into the function.
* It has one optional argument, which carries all the
* parameters the function was invoked with.
*/
async function main(params) {
// log environment variables available to the function
console.log(process.env);
// log Code Engine system headers available to the function
console.log(params.__ce_headers);
// log all parameters for debugging purposes
console.log("params: "+params);
// since functions are invoked through http(s), we return an HTTP response
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: params };
}
// this step is necessary, if you gave your main function a different name
// we include it here for documentation purposes only
module.exports.main = main;
建立函數並在指令中包含程式碼。 例如,使用 ibmcloud ce function create 指令來建立 myhellofun 函數。
ibmcloud ce fn create --name myhellofun --inline-code main.js --runtime nodejs
輸出範例
Creating function 'myhellofun'...
OK
Run 'ibmcloud ce function get -n myhellofun' to see more details.
https://myhellofun.glxo4kabcde.us-south.codeengine.appdomain.cloud
您可以執行 function get 指令並搭配 --save 選項,以儲存用來建立任何行內函數的程式碼。 例如,ibmcloud ce function get --name myhellofun --save hellofun2.js。
下一步
-
URL 函數建立後,您可以按一下控制台中的 Test function,或使用
function get指令來存取您的函式。 -
您可以建立 自訂網域對映,並將它指派給您的函數。
-
建立並部署函數之後,您可以從主控台或使用
ibmcloud ce function update指令來更新函數,以符合您的需求。 如果您要更新來源以與函數搭配使用,則必須在function update指令上提供--build-source選項。
建立函數之後,您可以使用下列 任何 方法來更新函數及其參照的程式碼,與您建立或先前更新函數的方式無關:
-
如果您有現有的程式碼組合,則只需要提供映像檔的參照,這會在您部署應用程式時指向容器登錄的位置。 如需相關資訊,請參閱 從現有程式碼組合建立函數工作量。
如果您已使用
function create指令建立函數,並指定--build-source選項以從本端或儲存庫來源建置程式碼組合,且您想要將函數變更為指向不同的程式碼組合,則必須先從函數中移除建置的關聯。 例如,執行ibmcloud ce function update -n FUN_NAME --build-clear。 從函數中移除建置的關聯之後,您可以更新函數以參照不同的映像檔。 -
如果您是從位於 Git 儲存庫中的原始碼開始,則可以選擇讓 Code Engine 從來源建置程式碼組合,並使用 單一 作業來建立函數。 在此實務範例中,Code Engine 會將您的程式碼組合上傳至 IBM Cloud® Container Registry。 若要進一步瞭解,請參閱 從儲存庫原始碼建立函數。
-
如果您是從位於本端工作站上的原始碼開始,您可以選擇 Code Engine,以從您的原始碼建置程式碼組合,並使用 單一 CLI 指令來建立函數。 在此實務範例中,Code Engine 會將原始碼及程式碼組合上傳至 IBM Cloud® Container Registry。
例如,您可以選擇 Code Engine 來建置本端來源,同時發展函數的來源開發。 然後,在程式碼組合成熟之後,您可以更新函數以參照您想要的特定程式碼組合。 您可以視需要重複此程序。
尋找更多程式碼範例? 請參閱 「IBM Cloud Code Engine」GitHub 儲存庫中的範例。