Skip to content

Commit

Permalink
add trigger role arn
Browse files Browse the repository at this point in the history
  • Loading branch information
rsonghuster committed Jun 2, 2022
1 parent 7751bae commit 3964f93
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 13 deletions.
22 changes: 17 additions & 5 deletions publish.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Type: Application
Name: start-unzip-oss
Version: 0.0.3
Version: 0.0.4
Provider:
- 阿里云
Description: 使用函数计算自动解压上传到OSS指定前缀目录的zip文件
Expand Down Expand Up @@ -77,26 +77,38 @@ Parameters:
authorities:
- AliyunOSSFullAccess
- AliyunFCDefaultRolePolicy
BucketName:
bucketName:
title: OSS存储桶名
type: string
default: ""
description: OSS存储桶名(注意和函数同地域)
Prefix:
prefix:
title: 前缀
type: string
default: src
description: 建议设置精准的前缀,同一个 Bucket 下的不同触发器条件不能重叠包含
ProcessedDir:
processedDir:
title: 解压目标目录
type: string
default: dst
description: 将匹配到的文件解压到此目标目录下。为防止循环触发产生不必要的费用,建议您设置不同于前缀的目标目录。
RetainFileName:
retainFileName:
title: 是否保留压缩文件名为路径目录
type: string
default: false
description: 是否保留压缩文件名为路径目录? 若为 true, 您的目标目录为target, 压缩文件名为source.zip, 则解压后文件路径为target/source/..., 否则为 target/...。
enum:
- true
- false
triggerRoleArn:
title: 触发器RAM角色ARN
type: string
default: ''
pattern: '^acs:ram::[0-9]*:role/.*$'
description: OSS使用此角色来发送事件通知来调用函数
required: true
x-role:
name: aliyunosseventnotificationrole
service: oss
authorities:
- AliyunFCInvocationAccess
6 changes: 4 additions & 2 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@

通过给函数创建 OSS 触发器, 用户只需要给对应的 OSS 指定前缀目录上传 zip 文件, 就会自动触发解压函数执行, 解压函数会把解压后的文件和文件夹转存回 OSS

**方案优越性**
使用流式解压方案, 不管多大的 zip 包都可以解压, 不使用临时磁盘空间, 默认设置的函数最大执行时长为 2h, 能满足绝大部分场景。

通过 Serverless Devs 开发者工具,您只需要几步,就可以体验 Serverless 架构,带来的降本提效的技术红利。

## 声明
Expand All @@ -59,8 +62,7 @@
1. mac/linux 系统, 默认是utf-8
2. windows 系统, 默认是gb2312(或者gb18030), 也可以是utf-8

对于其他编码,我们这里尝试使用chardet这个库进行编码判断, 但是这个并不能保证100% 正确,
建议用户先调试函数,如果有必要改写这个函数,并保证调试通过
对于其他编码,我们这里尝试使用chardet这个库进行编码判断, 但是这个并不能保证100% 正确,建议用户先调试函数,如果有必要改写这个函数,并保证调试通过
## Tips:
上面的示例, 解压保存回去的都还是本身触发函数的 OSS, 如果是保存到其他 OSS, 直接将 `bucket.put_object(newKey + name, file_obj)` 这样上传回 oss 的代码修改下即可, 比如:

Expand Down
6 changes: 4 additions & 2 deletions src/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@

通过给函数创建 OSS 触发器, 用户只需要给对应的 OSS 指定前缀目录上传 zip 文件, 就会自动触发解压函数执行, 解压函数会把解压后的文件和文件夹转存回 OSS

**方案优越性**
使用流式解压方案, 不管多大的 zip 包都可以解压, 不使用临时磁盘空间, 默认设置的函数最大执行时长为 2h, 能满足绝大部分场景。

通过 Serverless Devs 开发者工具,您只需要几步,就可以体验 Serverless 架构,带来的降本提效的技术红利。

## 声明
Expand All @@ -59,8 +62,7 @@
1. mac/linux 系统, 默认是utf-8
2. windows 系统, 默认是gb2312(或者gb18030), 也可以是utf-8

对于其他编码,我们这里尝试使用chardet这个库进行编码判断, 但是这个并不能保证100% 正确,
建议用户先调试函数,如果有必要改写这个函数,并保证调试通过
对于其他编码,我们这里尝试使用chardet这个库进行编码判断, 但是这个并不能保证100% 正确,建议用户先调试函数,如果有必要改写这个函数,并保证调试通过
## Tips:
上面的示例, 解压保存回去的都还是本身触发函数的 OSS, 如果是保存到其他 OSS, 直接将 `bucket.put_object(newKey + name, file_obj)` 这样上传回 oss 的代码修改下即可, 比如:

Expand Down
9 changes: 5 additions & 4 deletions src/s.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ services:
codeUri: ./code
memorySize: 3072
environmentVariables:
PROCESSED_DIR: "{{ ProcessedDir }}"
RETAIN_FILE_NAME: "{{ RetainFileName }}"
PROCESSED_DIR: "{{ processedDir }}"
RETAIN_FILE_NAME: "{{ retainFileName }}"
triggers:
- name: unzip-oss-trigger
type: oss
role: "{{ triggerRoleArn }}"
config:
events:
- oss:ObjectCreated:PutObject
Expand All @@ -55,6 +56,6 @@ services:
- oss:ObjectCreated:PutSymlink
filter:
Key:
Prefix: "{{ Prefix }}"
Prefix: "{{ prefix }}"
Suffix: .zip
bucketName: "{{ BucketName }}"
bucketName: "{{ bucketName }}"

0 comments on commit 3964f93

Please sign in to comment.