示例1:创建函数和timer触发器实现定时从obs桶中下载文件-j9九游会登录
场景描述
本章节以python 2.7为例,指导您通过api创建functiongraph函数和timer触发器,实现定时从obs桶中下载文件。
api的调用方法请参见。
前提条件
- 已在obs服务中上传文件,并记录文件名、文件所在的obs桶名,以及obs地址的链接。
- 已配置具有obs服务访问权限的委托,并记录委托名。
总体思路
创建functiongraph函数和timer触发器,实现定时从obs桶中下载文件,步骤如下:
- 创建函数 - createfunction:创建下载文件的函数。
- 修改函数的metadata信息 - updatefunctionconfig:修改函数配置信息中的obs地址、obs桶名和文件名。
- 同步执行函数 - invokefunction:确认函数能够成功从obs桶中下载文件。
- 创建触发器 - createfunctiontrigger:创建timer触发器,实现定时下载文件。
步骤1:创建下载文件的函数
uri:post /v2/{project_id}/fgs/functions
api文档详情请参见:创建函数 - createfunction
- 请求示例
post https://{endpoint}/v2/{project_id}/fgs/functions { "code_filename": "index.zip", "code_type": "inline", "func_code": { "file": "uesdbaoaaaaiabeswldhsm8coqyaajyraaaiaaaaaw5kzxguchm9v91v2zyqf9dfcxaelkekkryzngtqq9jvpg2cjsowj4gwajulrgok5vt963dhupzsj82gofvdqh2pd8e7333wai4oj6bqpzdlm2jt4ug3okqh8meks9ctllgddiumgfy3fsdmdlybkwpudfxd3ctqqrbq1lgwds/eogmmgs25ldq4f3yfy0rnwqwg67uoeh 04bowxggldcrka7nqcyzs3bku/adjli0wwtvorz2quumlsnbpazn7jyi6udrc1dy8cort/hqtr0y65dzx8794yfmvzyxx/bf33f45 nthfuqw5n 33ni90188pqp005l quwufa3wafm ebxpg4axzzce0iothzas5nh/rtmrabhnnj2fzta652vpmcoyds8knbsmiufmfyv3aeg7amua6vkoydp2uim5zlpwk0zol9fcmoblmt4zbbzft28 xedfrq5u8 vz2/do6ety1s3xbpzvaf6re1kphgyxoipgfebhq/0ooxgn9insxrppvsqwoprpsrkstwh7dwc3daanrr9ydeupuagplejosxi4xzuvmfzif5mlqqwqinyajnwtzt 2srco451mzsogiduc4n053pcj9lvdctj7/wjtyimz9qzm16c/ e4obxmcnr6eh34/wjuckte2qx72/g/wfkd1gzwlpmqcznevqx5jdmnq6ne07lb3raxaeqmqng7arpmqqokiauhsjvadqlgkvxvuicvfslaysgzvy9mi0/m9mljhlckprtatqk5yhb2yrzhveiwu0vkvdnywkdzklze4mfvkkjyfhs2ewao/ayx3fm2lfeqjgcvljnrozibqo/kbi2/7zkqp76vfm8vi6yhlonohjc4u2uko28eobbims7f9byrflzwxdufci8l4ae9kvtgwtxvlxae9dnufw0w9cksil9pefcy2n0ncd4wjlbtrhjple5otwgb74l9da0wct2prv tseiurv9dgz0qivd22l1b9iicwp1xrpepjnbu9jscywovaacvrqulrrnjsxigib/me/ufwopltrgqopuxc/5qwer/9iq2dyuxyurbgj2ab0d7gfzrarqxfzt7tjccekpm8xzingi3qgbprheobcvoptudcss6knq mfbqko4xihvyogcahh4ed/wt0guzg2uca7z3pj4rlngx28ik3jnyzyhjqmkx3ch7pjl253b54ujjfzdcywhocsmovi6yp55 89exug5vnbv sd3hip539g15gip1 jy6sgw134kav1o9b6s1dcjbb5ikyc0aelmrrbglelcghvt1hav0xg5y4um4tmgywgtjmonsqcz9hbbq3cehom1adtkapucestlsqbpu5lb5vtgrattjcril xu 7we/ ubetwyutexeeeeh5baifqnhw3ihv1oqkvuudir5drudxrw1aqqstw8wbp1koc55pntmxbvv1m6sldpkune4r4s8h2up40dzdygqulya7khez4dxurdgthrwn3eelvw/fzqy3cah4cbtphacg d0zknoaenm8rlij3qoqdsq6cf3er1hthppmw cwx3j8g6dtny e2gm2v ndlsrm8bs0zienznwl0u7xfsb3a2xm/yvunoa629izmfiyzsqbyrtkhmucfjlo/l/emcphufiwyt4yjayew2eloz97dttskz5ero7yqrxszr8kyexnmz7zi5oqnr/v f0ytolail0rwtnfdg3ppvggqetbqawffxpnnmwpuf/henyi0dlqaal2xqbdyvxxbp/qv7bixxmsqfuv5ptis2eazqqp3tnbkudeqf9jffqq3o0fsneqd4z/821vbv/eizwnmnku7yswob73xelwenmkm10wb mtfgynzrzydz8sfyna32wi6tcwx3b1b/mj14hotmsf2w1tahb0r/3lcocb9qxhduszzdte41fnhstkxjak2u5w4c72l2yth31 krpsrpsjhy93ejrtyyyb4owsd3fywmwzfviikpsf4il1702q3hxpyjq4rwdscw2xezn15xlg3qy6svoi xuguv2us/v90htesapok2a5guowtpchaufr4fii9b7fbfpnpdprszupm8expd95ctq btff/wbqswechgmkaaaacaaresjqx0jphdkgaacweqaacaaaaaaaaaaaaaaa8wiaaaaaaw5kzxguchlqswugaaaaaaeaaqa2aaaaxwyaaaaa" }, "func_name": "download_file_from_obs", "handler": "index.handler", "memory_size": 256, "package": "default", "runtime": "python2.7", "timeout": 30 } - 响应示例
{ "func_urn": "urn:fss:{project_name}:{project_id}:function:default:download_file_from_obs:latest", "func_name": "download_file_from_obs", "domain_id": "89fexxxd636", "namespace": "{project_id}", "project_name": "xxx", "package": "default", "runtime": "python2.7", "timeout": 30, "handler": "index.handler", "memory_size": 256, "cpu": 400, "code_type": "inline", "code_filename": "index.zip", "code_size": 1707, "digest": "68891a6778848a78bd37a8c0798c91d75a5c87aee6e901303047a52edf05bf2170aac4149d79b3f6a40efe78406a83bf6d8683e7b25da4f0c07e7493aa4ccdcd", "version": "latest", "image_name": "latest-200603162219@zr2ym", "last_modified": "2020-06-03t16:22:19 08:00", "strategy_config": { "concurrency": -1 }, "strategyconfig": {}, "enterprise_project_id": "0" }记录函数的urn,即响应示例中的“func_urn”信息。
步骤2:修改函数配置信息中的obs地址、obs桶名和文件名
uri:put /v2/{project_id}/fgs/functions/{function_urn}/config
api文档详情请参见:修改函数的metadata信息 - updatefunctionconfig
- 请求示例
put https://{endpoint}/v2/{project_id}/fgs/functions/{function_urn}/config { "func_name": "download_file_from_obs", "handler": "index.handler", "memory_size": 256, "runtime": "python2.7", "timeout": 30, "user_data": "{\"obs_address\":\"obs.example.example.com\",\"srcbucket\":\" xxx\",\"srcobjname\":\"xxx\"}", "xrole": "xxx" }function_urn为步骤1:创建下载文件的函数中记录的函数urn,obs_address为obs地址,srcbucket为obs桶名,srcobjname为文件名,xrole为委托名。
- 响应示例
{ "func_urn": "urn:fss:{project_name}:{project_id}:function:default:download_file_from_obs:latest", "func_name": "download_file_from_obs", "domain_id": "89fexxxd636", "namespace": "{project_id}", "project_name": "xxx", "package": "default", "runtime": "python2.7", "timeout": 30, "handler": "index.handler", "memory_size": 256, "cpu": 400, "code_type": "inline", "code_filename": "index.zip", "code_size": 1707, "user_data": "{\"obs_address\":\"obs.example.example.com\",\"srcbucket\":\"xxx\",\"srcobjname\":\"xxx\"}", "digest": "68891a6778848a78bd37a8c0798c91d75a5c87aee6e901303047a52edf05bf2170aac4149d79b3f6a40efe78406a83bf6d8683e7b25da4f0c07e7493aa4ccdcd", "version": "latest", "image_name": "latest-200603165355@varrp", "xrole": "xxx", "app_xrole": "xxx", "last_modified": "2020-06-03t17:25:03 08:00", "strategy_config": { "concurrency": -1 }, "strategyconfig": {}, "enterprise_project_id": "0" }
步骤3:确认函数能够成功从obs桶中下载文件
uri:post /v2/{project_id}/fgs/functions/{function_urn}/invocations
api文档详情请参见:同步执行函数 - invokefunction
- 请求示例
post https://{endpoint}/v2/{project_id}/fgs/functions/{function_urn}/invocations { "message": "download file" }function_urn为步骤1:创建下载文件的函数中记录的函数urn。
- 响应示例
"the object downloaded successfully from obs, and the size is 14 kb"
步骤4:创建timer触发器,实现定时下载文件
uri:post /v2/{project_id}/fgs/triggers/{function_urn}
api文档详情请参见:创建触发器 - createfunctiontrigger
- 请求示例
post https://{endpoint}/v2/{project_id}/fgs/triggers/{function_urn} { "event_data": { "name": "timer-download", "schedule_type": "rate", "schedule": "1d" }, "event_type_code": "messagecreated", "trigger_status": "active", "trigger_type_code": "timer" }function_urn为步骤1:创建下载文件的函数中记录的函数urn。
上述请求示例表示每天从obs桶中下载文件。
- 响应示例
{ "trigger_id": "461bbe95-c85b-4dc9-a306-9701e77f1d66", "trigger_type_code": "timer", "trigger_status": "active", "event_data": { "name": "timer-download", "schedule": "1d", "schedule_type": "rate" }, "last_updated_time": "2020-06-04t10:33:30 08:00", "created_time": "2020-06-04t10:33:30 08:00" }
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨