使用内联代码创建函数工作负载
您可以使用内联代码创建函数。 您的代码随您的函数一起存储。 您可以从控制台或使用 CLI 创建此类型的功能。
代码束是表示函数代码的文件的集合。 此代码束将注入到运行时容器中。 代码束由 Code Engine 创建,并存储在容器注册表中或与函数直接插入。 代码束不是开放式容器计划 (OCI) 标准容器映像。
使用内联控制台创建函数
从控制台创建具有内联代码的函数。
- 打开 Code Engine 控制台。
- 选择 让我们开始。
- 选择功能。
- 输入函数的名称,例如
myfunction
。 为您的功能起一个在项目中独一无二的名称。 - 从可用项目列表中选择一个项目。 您还可以 创建新的。 您必须选择项目以创建函数。
- 为函数代码选择 运行时映像。 有关更多信息,请参阅 运行时。
- 选择以将您的代码指定为内联代码包。 选择此选项时,将使用所选运行时的样本代码束来创建函数。 您可以在创建函数后编辑样本代码。 代码束以内联方式与函数一起存储。
- 指定资源信息,包括 CPU 和内存组合 和 缩放延迟。
- (可选) 指定 定制域 或 环境变量。 您可以稍后添加这些选项。
- 单击创建。
- 在功能状态更改为 就绪后,您可以测试功能。 单击 测试功能,然后单击 发送请求。 要在网页中打开该功能,请点击功能 URL。
- 您还可以在“编辑器”窗口中更改函数代码。 重新部署函数时,将以内联方式存储代码。
您可以通过单击 测试函数,然后单击 发送请求来调用函数。
您可以通过运行带有 --save
选项的 function get
命令来检索用于创建任何内联函数的代码。 例如,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-20
示例输出
Creating function 'myhellofun'...
OK
Run 'ibmcloud ce function get -n myhellofun' to see more details.
https://myhellofun.glxo4kabcde.us-south.codeengine.appdomain.cloud
您可以通过运行带有 --save
选项的 function get
命令来保存用于创建任何内联函数的代码。 例如,ibmcloud ce function get --name myhellofun --save hellofun2.js
。
后续步骤
-
URL 创建函数后,您可以通过点击控制台中的 “测试函数” 或使用
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 存储库。