ALIYUN::FC::Function类型是用于系统调度和运行的单位。函数必须从属于服务,一个服务下的所有函数都共享该服务的属性,例如授权、日志设置。

语法

{
  "Type": "ALIYUN::FC::Function",
  "Properties": {
    "Code": Map,
    "FunctionName": String,
    "ServiceName": String,
    "MemorySize": Integer,
    "EnvironmentVariables": Map,
    "Initializer": String,
    "Handler": String,
    "Timeout": Integer,
    "InitializationTimeout": Integer,
    "Runtime": String,
    "Description": String
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
Initializer String 初始化函数执行的入口。 具体格式和语言相关。
InitializationTimeout Integer 初始化函数运行的超时时间。 单位:秒。取值:1~300。默认值:3。初始化函数时,如果超出这个时间,则终止执行。
Code Map 指定code zip包。 无。
Description String 函数的简短描述。 无。
ServiceName String 服务名称。 长度为1~128个字符。
MemorySize Integer 函数的内存规格。 单位为MB。取值:128~1536,必须是64的倍数。
EnvironmentVariables Map 函数设置的环境变量。 无。
Handler String 函数执行的入口。 具体格式和语言相关。
Timeout Integer 函数运行的超时时间。 单位:秒。取值:1~300。默认值:3。运行函数时,如果超出这个时间,则终止执行。
Runtime String 函数的运行环境。 目前支持nodejs6、nodejs8、python2.7、python3、java8。
FunctionName String 函数名称。 无。

Code语法

"Code": {
  "OssBucketName": String,
  "OssObjectName": String,
  "ZipFile": String,
  "SourceCode": String
}

Code属性

属性名称 类型 必须 允许更新 描述 约束
OssBucketName String 函数code zip包的存储空间名称。 无。
OssObjectName String code zip包的对象名。 无。
ZipFile String 在请求体中上传的code zip包的Base64编码。 无。
SourceCode String 函数源码(目前支持Node.js、PHP、Python)。 最大长度为4096个字符。ROS会将参数值写入一个utf-8编码的名为index的文件。当同时传入ZipFile、SourceCode和OssBucketName&OssObjectName时,优先级依次为:ZipFile>SourceCode>OssBucketName&OssObjectName。

返回值

Fn::GetAtt

FunctionId:系统为每个函数生成的唯一ID。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "Function": {
      "Type": "ALIYUN::FC::Function",
      "Properties": {
        "Code": {
          "Ref": "Code"
        },
        "Description": {
          "Ref": "Description"
        },
        "ServiceName": {
          "Ref": "ServiceName"
        },
        "MemorySize": {
          "Ref": "MemorySize"
        },
        "EnvironmentVariables": {
          "Ref": "EnvironmentVariables"
        },
        "Handler": {
          "Ref": "Handler"
        },
        "Timeout": {
          "Ref": "Timeout"
        },
        "Runtime": {
          "Ref": "Runtime"
        },
        "FunctionName": {
          "Ref": "FunctionName"
        }
      }
    }
  },
  "Parameters": {
    "Code": {
      "Type": "Json",
      "Description": "The code that contains the function implementation."
    },
    "Description": {
      "Type": "String",
      "Description": "Function description"
    },
    "ServiceName": {
      "MinLength": 1,
      "Type": "String",
      "Description": "Service name",
      "MaxLength": 128
    },
    "MemorySize": {
      "Default": 128,
      "Type": "Number",
      "Description": "The amount of memory that\u2019s used to run function, in MB. Function Compute uses this value to allocate CPU resources proportionally. Defaults to 128 MB. It can be multiple of 64 MB and between 128 MB and 3072 MB.",
      "MaxValue": 1536,
      "MinValue": 128
    },
    "EnvironmentVariables": {
      "Type": "Json",
      "Description": "The environment variable set for the function, you can get the value of the environment variable in the function."
    },
    "Handler": {
      "Type": "String",
      "Description": "The function execution entry point."
    },
    "Timeout": {
      "Default": 3,
      "Type": "Number",
      "Description": "The maximum time duration a function can run, in seconds. After which Function Compute terminates the execution. Defaults to 3 seconds, and can be between 1 to 300 seconds.",
      "MaxValue": 300,
      "MinValue": 1
    },
    "Runtime": {
      "Type": "String",
      "Description": "The function runtime environment. Supporting nodejs6, nodejs8, python2.7, python3, java8",
      "AllowedValues": [
        "nodejs6",
        "nodejs8",
        "python2.7",
        "python3",
        "java8"
      ]
    },
    "FunctionName": {
      "Type": "String",
      "Description": "Function name"
    }
  },
  "Outputs": {
    "FunctionId": {
      "Description": "The function ID",
      "Value": {
        "Fn::GetAtt": [
          "Function",
          "FunctionId"
        ]
      }
    }
  }
}