• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

fc-alibaba-component: 通过本组件,您可以简单快速的将阿里云函数计算项目部署到线上 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

fc-alibaba-component

开源软件地址:

https://gitee.com/serverless-devs-awesome/fc-alibaba

开源软件介绍:

前言

通过本组件,您可以简单快速的将阿里云函数计算项目部署到线上。

使用

最简使用方法

模版拉取:

s init python3-http -p alibaba

其中Yaml的默认配置为:

MyFunctionDemo:  Component: fc  Provider: alibaba  Properties:    Region: cn-hangzhou    Service:      Name: ServerlessToolProject      Description: 欢迎使用ServerlessTool    Function:      Name: serverless_demo_python3_http      Description: 这是一个Python3-HTTP的测试案例      CodeUri: ./      Handler: index.handler      MemorySize: 128      Runtime: python3      Timeout: 5      Triggers:        - Name: TriggerNameHttp          Type: HTTP          Parameters:            AuthType: ANONYMOUS            Methods:              - GET              - POST              - PUT            Domains:              - Domain: AUTO

系统默认bootstrap内容:

测试模板对应关系不同语言的Event函数模板:nodejs6nodejs8nodejs10nodejs12python27python3php72不同语言的Http函数模板:nodejs6-httpnodejs8-httpnodejs10-httpnodejs12-httppython27-httppython3-httpphp72-http

完整Yaml示例

MyFunction:  Component: fc  Provider: alibaba  Access: release  Properties:    Region: cn-huhehaote    Service:      Name: 服务名      Description: 服务描述      InternetAccess: 访问公网#      Log: Auto      Log:        LogStore: loghub中的logstore名称        Project: loghub中的project名称#      Role: <角色名称> 或 <角色ARN>      Role: # 授予函数计算所需权限的RAM role          Name: <角色名称>          Policies:            - AliyunECSNetworkInterfaceManagementAccess            - AliyunFCFullAccess#      Vpc: Auto      Vpc:        SecurityGroupId: 安全组        VSwitchIds:          - 一个或多个VSwitch ID        VpcId: VPC ID#      Nas: Auto#      Nas:#        Type: Auto#        FcDir: /home/aaaaaa#        LocalDir: ./ssss#        LocalDir: #          - ./ssss      Nas:        UserId: userID        GroupId: groupID # s nas sync        MountPoints:          - Alias: demo # 选填            NasAddr: 3e3544a894-qjf60.cn-shanghai.nas.aliyuncs.com            NasDir: /demo            FcDir: /home/ssss            LocalDir: ./ssss          - NasAddr: 3e3544a894-qjf60.cn-shanghai.nas.aliyuncs.com            NasDir: /demo            FcDir: /home/aaaaaa            LocalDir:               - path      Tags:        - Key: 标签名          Value: 标签值        - Key: 标签名          Value: 标签值    Function: 函数名      Name: 函数名      Description: 函数描述      #      CodeUri: 本地路径      #      CodeUri:      #        Bucket: function code包的bucket name      #        Object: code zip包的object name      CodeUri:        Bucket: function code包的bucket name        Src: 本地路径        Excludes:          - path1          - path2        Includes:          - path1          - path2      CAPort: 8080 #指定端口      CustomContainer:        Dockerfile: ./dockerfile        CrAccount:          User: xx  #如指定则会自动进行登录          Password: xx #如指定则会自动进行登录        Image: 'registry.cn-hangzhou.aliyuncs.com/lvwantest/nahai-repo:latest'  # 仓库地址        Command: '[ "node"]'        Args: '["server.js"]'      Handler: function执行的入口,具体格式和语言相关      MemorySize: function的内存规格      InstanceConcurrency: 单实例多并发      Runtime: function的运行环境      Environment:        - Key: Environmentkey          Value: EnvironmentValue      Timeout: function运行的超时时间      Initializer:        Handler: 初始化 function 执行的入口,具体格式和语言相关        Timeout: 初始化 function 运行的超时时间      Triggers:        - Name: OSSTrigger          Type: OSS # trigger type          Parameters:            Bucket: coco-superme # oss bucket name            Events:              - oss:ObjectCreated:*              - oss:ObjectRemoved:DeleteObject            Filter:              Prefix: source/              Suffix: .png            Qualifier: Prod # 版本(可选)        - Name: TriggerNameTimer          Type: Timer          Parameters:            CronExpression: '0 0 8 * * *'            Enable: true            Payload: 'awesome-fc-event-nodejs10'            Qualifier: Prod # 版本(可选)        - Name: TriggerNameHttp          Type: HTTP # trigger type          Parameters:            AuthType: ANONYMOUS            InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色            Methods:              - GET              - POST              - PUT            Domains:              - Domain: anycodes.cn                Protocol:                  - HTTP                  - HTTPS                CertConfig:                  CertName: 'CertName'                  PrivateKey: './certificates/privateKey.pem'                  Certificate: './certificates/certificate.pem'                Routes:                  - Path: '/a'                    Qualifier: Prod # 版本(可选)                  - Path: '/a'                    Qualifier: Prod # 版本(可选)        - Name: TriggerNameLog          Type: Log          Parameters:            SourceConfig:              LogStore: logstore1            JobConfig:              MaxRetryTime: 1              TriggerInterval: 30            LogConfig:              Project: testlog              LogStore: logstore2            Enable: true            FunctionParameter: 日志服务将该配置内容作为函数 event, 当事件触发时            InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色            Qualifier: Prod # 版本(可选)        - Name: TriggerNameRDS          Type: RDS # trigger type          Parameters:            InstanceId: rm-12345799xyz            SubscriptionObjects:              - db1.table1            Retry: 2            Concurrency: 1            EventFormat: json            InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色            Qualifier: Prod # 版本(可选)        - Name: TriggerNameMNS          Type: MNSTopic # trigger type          Parameters:            TopicName: test-topic            Region: cn-shanghai            NotifyContentFormat: JSON            NotifyStrategy: BACKOFF_RETRY            FilterTag: 描述了该订阅中消息过滤的标签            InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色            Qualifier: Prod # 版本(可选)        - Name: TriggerNameTableStore          Type: TableStore # trigger type          Parameters:            InstanceName: test-inst            TableName: test-tbl            InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色            Qualifier: Prod # 版本(可选)        - Name: TriggerNameCDN          Type: CDN # trigger type          Parameters:            EventName: LogFileCreated            EventVersion: '1.0.0'            Notes: cdn events trigger test            Filter:              Domain:                - 'www.taobao.com'                - 'www.tmall.com'            InvocationRole: 使用一个 RAM 角色的 ARN 为函数指定执行角色            Qualifier: Prod # 版本(可选)

详细使用方法

参数名必填类型参数描述
RegiontrueEnum地域
ServicefalseStruct服务
FunctionfalseStruct函数

Region

参数取值:cn-beijing, cn-hangzhou, cn-shanghai, cn-qingdao, cn-zhangjiakou, cn-huhehaote, cn-shenzhen, cn-chengdu, cn-hongkong, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-5, ap-northeast-1, eu-central-1, eu-west-1, us-west-1, us-east-1, ap-south-1

Service

参数名必填类型参数描述
NamefalseStringservice名称
DescriptionfalseStringservice的简短描述
InternetAccessfalseBoolean设为true让function可以访问公网
RolefalseString/Struct授予函数计算所需权限的RAM role, 使用场景包含 1. 把 function产生的 log 发送到用户的 logstore 中 2. 为function 在执行中访问其它云资源生成 token
LogfalseString/Structlog配置,function产生的log会写入这里配置的logstore
VpcfalseString/Structvpc配置, 配置后function可以访问指定VPC
NasfalseString/StructNAS配置, 配置后function可以访问指定NAS
TagfalseList标签
Role

如果是String类型,可以直接写arn,如果是Struct类型:

参数名必填类型参数描述
NametrueString角色名
PoliciestrueList策略列表
Log

如果是String类型,可以直接写Auto,如果是Struct类型:

参数名必填类型参数描述
LogStorefalseStringloghub中的logstore名称
ProjectfalseStringloghub中的project名称
Vpc

如果是String类型,可以直接写Auto,如果是Struct类型:

参数名必填类型参数描述
SecurityGroupIdfalseString安全组ID
VSwitchIdsfalseString一个或多个VSwitch ID
VpcIdfalseStringVPC ID
Nas

如果是String类型,可以直接写Auto,如果是Struct类型:

参数名必填类型参数描述
TypetrueString只可填写Auto
FcDirfalseString函数计算目录
LocalDirfalseList/String本地目录
参数名必填类型参数描述
UserIdfalseStringuserID
GroupIdfalseStringgroupID
MountPointsfalseList挂载点

其中MountPoints为:

参数名必填类型参数描述
AliasfalseString针对组件生效的别名(和线上资源无关)
NasAddrfalseStringNAS 服务器地址
NasDirfalseStringNAS目录
FcDirfalseString函数计算目录
LocalDirfalseString本地目录
Tag
参数名必填类型参数描述
KeyfalseString标签名
ValuefalseString标签值

Function

参数名必填类型参数描述
NamefalseStringfunction名称
DescriptionfalseStringfunction的简短描述
MemorySizefalseStringfunction的内存规格
CodeUrifalse(默认为./)String/Struct代码位置
CAPortfalseStringCustomContainer/Runtime指定端口
CustomContainerfalseStruct自定义镜像配置
InstanceConcurrencyfalseNumber单实例多并发
HandlertrueStringfunction执行的入口,具体格式和语言相关
RuntimetrueStringfunction的运行环境
InitializerfalseStruct初始化方法
EnvironmentfalseStruct环境变量
TimeoutfalseStringfunction运行的超时时间
TriggersfalseList触发器
Environment
参数名必填类型参数描述
KeyfalseString环境Key
ValuefalseString环境Value
CodeUri
  • 直接填写路径

  • 参数名必填类型参数描述
    BucketfalseStringfunction code包的bucket name
    ObjectfalseStringcode zip包的object name
    ExcludefalseList除去路径
    IncludefalseList包括路径
  • 参数名必填类型参数描述
    BucketfalseStringfunction code包的bucket name
    SrcfalseString本地路径
    ExcludefalseList除去路径
    IncludefalseList包括路径
CustomContainer
参数名必填类型参数描述
CrAccountfalseStruct账号信息
ImagefalseString仓库地址
CommandfalseString指令
ArgsfalseString参数
CrAccount
参数名必填类型参数描述
UserfalseStringCrAccount账号
PasswordfalseStringCrAccount密码
Initializer
参数名必填类型参数描述
HandlerfalseString初始化 function 执行的入口,具体格式和语言相关
TimeoutfalseString初始化 function 运行的超时时间
Triggers
参数名必填类型参数描述
NametrueString触发器名称
TypetrueEnum触发器类型
ParameterstrueStruct参数内容
Type

参数取值:OSS, CDN, MNSTopici, TableStore, Timer, HTTP, RDS, LOG

Parameters[HTTP]
参数名必填类型参数描述
AuthTypetrueList鉴权类型,可选值:ANONYMOUS、FUNCTION
MethodstrueListHTTP 触发器支持的访问方法
DomainsfalseString参数内容
EnablefalseString表示是否启用该触发器。
InvocationRolefalseString使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限
QualifierfalseStringservice 版本
AuthType

枚举:ANONYMOUSFUNCTION

Methods

枚举:GETPOSTPUTDELETEHEAD

Domains
  • 参数名必填类型参数描述
    DomainfalseString域名
  • 参数名必填类型参数描述
    DomainfalseString域名
    ProtocolfalseList(HTTP,HTTPS)协议
    CertConfigfalseStruct域名证书
    RoutesfalseStruct路径配置
OSS
参数名必填类型参数描述
BuckettrueString存储桶名字
EventstrueList事件
FiltertrueStruct条件
QualifierfalseStringProd # 版本(可选)

其中Filter:

参数名必填类型参数描述
PrefixtrueString前缀
SuffixtrueString后缀
Timer
参数名必填类型参数描述
CronExpressiontrueString触发事件表达式,例如'0 0 8 * * *'
Enablefalse(默认是true)Boolean是否开启
PayloadfalseStruct触发时传入的参数
QualifierfalseStringProd # 版本(可选)
Log
参数名必填类型参数描述
SourceConfigtrueStringSource配置
JobConfigtrueStructJob配置
LogConfigtrueStructLog配置
InvocationRolefalseString使用一个 RAM 角色的 ARN 为函数指定执行角色
FunctionParameterfalseString日志服务将该配置内容作为函数 event, 当事件触发时
Enablefalse(默认是true)Boolean是否开启
QualifierfalseStringProd # 版本(可选)

其中SourceConfig:

参数名必填类型参数描述
LogStoretrueString触发器会定时从该 Logstore 订阅数据到函数计算。

其中JobConfig:

参数名必填类型参数描述
MaxRetryTimetrueString表示日志服务触发函数执行时,如果遇到错误,所允许的最大尝试次数
TriggerIntervaltrueString表示日志服务触发函数执行的间隔

其中LogConfig:

参数名必填类型参数描述
ProjecttrueString表示日志服务 Project 名称
LogStoretrueString表示触发函数执行时,产生的日志会记录到该 Logstore
FunctionParameterfalseString当事件触发时,会连同它的内容一起发送给函数
RDS
参数名必填类型参数描述
InstanceIdtrueString表示日志服务 Project 名称
SubscriptionObjectsfalseString订阅对象,当前支持到表级别,只有这些表的更新才会触发函数执行
RetryfalseString重试次数,可选值:[0,3], 默认值为3。
ConcurrencyfalseString调用并发量,可选值:[1,5], 默认值为1
EventFormatfalseStringevent格式,可选值:json, protobuf, 默认值为 protobuf。
InvocationRolefalseString使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。
QualifierfalseStringProd # 版本(可选)
MNSTopic
参数名必填类型参数描述
TopicNametrueStringmns topic的名字
RegionfalseStringmns topic 所在的 region,如果不填,默认为和函数一样的 region
NotifyContentFormatfalseString推送给函数入参 event 的格式,可选值:STREAM, JSON, 默认值为: STREAM。
NotifyStrategyfalseString调用函数的重试策略,可选值:BACKOFF_RETRY, EXPONENTIAL_DECAY_RETRY, 默认值为: BACKOFF_RETRY
FilterTagfalseString描述了该订阅中消息过滤的标签(标签一致的消息才会被推送),不超过 16 个字符的字符串,默认不进行消息过滤,即默认不填写该字段。
InvocationRolefalseString使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。
QualifierfalseStringProd # 版本(可选)
TableStore
参数名必填类型参数描述
InstanceNametrueString表格存储实例的名字
TableNametrueString实例中的表名
InvocationRolefalseString使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。
QualifierfalseStringProd # 版本(可选)
CDN
参数名必填类型参数描述
EventNametrueString为 CDN 端触发函数执行的事件,一经创建不能更改
EventVersiontrueString为 CDN 端触发函数执行事件的版本,一经创建不能更改
NotestrueString备注信息
FiltertrueStruct过滤器(至少需要一个过滤器)
InvocationRolefalseString使用一个 RAM 角色的 ARN 为函数指定执行角色,事件源会使用该角色触发函数执行,请确保该角色有调用函数的权限。
QualifierfalseStringProd # 版本(可选)

其中Filter:

参数名必填类型参数描述
DomaintrueList是个字符串数组且必填,代表过滤参数值的集合。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap