
# 使用空白模板创建并执行函数
本章节介绍如何在函数工作流控制台使用空白模板快速开发一个简单的Hello World函数。该章节以创建HelloWorld事件函数为例，介绍函数的创建及测试过程，供您快速体验FunctionGraph函数的基本功能。
#### 准备工作
1. 注册华为账号并实名认证。 在创建函数前，请先注册华为账号并实名认证，具体步骤请参考[注册华为账号并开通华为云](https://support.huaweicloud.com/usermanual-account/account_id_001.html)和[实名认证介绍](https://support.huaweicloud.com/usermanual-account/account_auth_00001.html)。
   如果您已有一个华为账号并实名认证，请跳过此步骤。
   
2. 免费额度。 函数工作流服务每个月都会提供一定数量的免费额度，免费额度是子主账户共同使用，具体详情请参见[免费额度](https://support.huaweicloud.com/price-functiongraph/functiongraph_00_0012.html)。
   当免费额度使用完后，若您继续使用函数工作流时，账户的可用额度小于待结算的账单时，即被判定为账户欠费。欠费后，可能会影响您的服务资源的正常运行，请及时充值，具体详情请参考[账户充值](https://support.huaweicloud.com/usermanual-billing/bills-topic_30000002.html)。
   
3. 为用户添加函数的操作权限。 本章节所有操作均默认具有操作权限，请确保您登录的用户已有"FunctionGraph Administrator"权限，即FunctionGraph服务所有权限，更多权限的说明请参考[权限管理](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0160.html)。
   
 
#### 步骤一：创建函数
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?locale=zh-cn)，在左侧的导航栏选择"函数 \> 函数列表"。
2. 单击右上方的"创建函数"，进入"创建函数"页面，开始创建空白函数。
3. 参考[图1]配置函数基本信息，具体参数说明如下，完成后单击"创建函数"。
   表1创建函数参数说明 
   | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 取值样例                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|:---|
   | 函数类型   | 选择事件函数。 事件函数为可通过特定事件触发的函数，通常为JSON格式的请求事件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 事件函数                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 区域     | 选择函数所在的区域。 不同区域的资源之间内网不互通，请就近选择靠近您业务的区域，可以降低网络时延、提高访问速度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 华东-上海一                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 函数名称   | 输入自定义的函数名称，命名规则如下： - 可包含字母、数字、下划线和中划线，长度不超过60个字符。  - 以大/小写字母开头，以字母或数字结尾。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | HelloWorld                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 企业项目   | 选择函数所属的企业项目。企业项目是一种云资源管理方式，企业项目管理服务提供统一的云资源按项目管理，以及项目内的资源管理、成员管理。 默认为"default"，支持用户选择已创建的企业项目。 **如果您没有开通企业管理服务，将无法看到企业项目选项。开通方法请参见[如何开通企业项目](https://support.huaweicloud.com/usermanual-em/eps_15_0001.html)。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | default                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 委托     | 选择函数的委托。通过委托来授权函数工作流来访问其他云服务，若函数不访问任何云服务，则无需选择委托。 默认"未使用任何委托"，支持选择已创建的委托。 当华为云账号下无函数默认委托时，FunctionGraph提供快速创建默认委托"fgs_default_agency"的功能，详情请参见[默认委托](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.html#section1)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 未使用任何委托                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 委托权限策略 | **此参数仅在选择使用委托时显示。** 选定委托后将展示该委托关联的权限策略，如需调整权限策略，请参考[修改函数委托](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0920.html#section4)通过IAM控制台进行操作。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | -                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 运行时    | 选择编写函数的运行时语言。 FunctionGraph支持的运行时语言请参考[FunctionGraph支持的运行时语言](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_0151.html)。 - 控制台代码编辑器仅支持在线编辑Node.js、Python、PHP和定制运行时。  - 函数成功创建后，不支持修改运行时语言。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Node.js 16.17                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 高级设置   | - 函数访问公网：开启时，函数可以通过默认网卡访问公网上的服务，其公网访问带宽为用户间共享，仅适用于测试场景。  - 函数访问VPC内资源：开启时，函数将使用配置的VPC所绑定的网卡进行网络访问，同时禁用函数工作流的默认网卡，即开关"函数访问公网"参数将不生效。 **开启此参数需要函数配置包含VPC管理权限的委托，若基本信息的委托中选择"未使用任何委托"则无法开启。**   - 日志记录：启用日志功能后，函数运行过程中产生的日志会上报到云日志服务（LTS）。 **LTS将按需收取日志管理费用，详情请参见[云日志服务价格详情](https://www.huaweicloud.com/pricing/calculator.html#/lts)。**   - 标签：为函数添加标签，标签用于标识和分类函数资源。  - KMS静态加密代码（仅"拉美-圣保罗一"区域支持）：选择是否使用KMS静态加密函数代码。 **密码安全中心DEW将按需收取费用，详情请参见[密码安全中心计费说明](https://support.huaweicloud.com/price-dew/dew_03_0006.html)。**    | - 函数访问公网：开启  - 函数访问VPC内资源：未开启  - 日志记录：未开启  - KMS静态加密代码：不使用   |
      
   图1创建函数   
   ![](https://support.huaweicloud.com/qs-functiongraph/zh-cn_image_0000002478179564.png "点击放大")
   
   

4. 配置代码源，复制如下代码至代码窗，单击"部署代码"。
   样例代码实现的功能是：获取测试事件，打印测试事件信息。
   ```
   exports.handler = function (event, context, callback) {
       const error = null;
       const output = `Hello message: ${JSON.stringify(event)}`;
       callback(error, output);
   }
   ```
   
 
#### 步骤二：测试函数
1. 在函数详情页，单击"测试"，在弹窗中创建新的测试事件。
2. 选择"空白模板"，事件名称输入"test"，测试事件修改为如下所示，完成后单击"创建"。
   ```
   {
       "hello": "function"
   }
   ```
   图2配置测试事件   
   ![](https://support.huaweicloud.com/qs-functiongraph/zh-cn_image_0000001871700529.png "点击放大") 
 
#### 步骤三：查看执行结果
单击test事件的"测试"，执行后，在右侧查看执行结果。
- "函数返回"显示函数的返回结果。
- "日志"部分显示函数执行过程中生成的日志。
- "执行摘要"部分显示"日志"中的关键信息。
  图3查看执行结果   
  ![](https://support.huaweicloud.com/qs-functiongraph/zh-cn_image_0000001261803038.png "点击放大") 
![](https://support.huaweicloud.com/qs-functiongraph/public_sys-resources/note_3.0-zh-cn.png)
此页面最多显示2K日志，了解函数更多日志信息，请参考[配置和查看函数的调用日志](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1834.html)。
#### 相关信息
- 了解函数工作流的相关概念，请参考[基本概念](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_02_1005.html)。
- 了解函数工作流的价格，请参考[函数工作流价格详情](https://www.huaweicloud.com/pricing/calculator.html?tab=detail#/function)。
- 了解函数工作流的约束与限制，请参考[约束与限制](https://support.huaweicloud.com/productdesc-functiongraph/functiongraph_01_0150.html)。
 
