用于aws lambda功能的用户友好的部署和管理工具。

lamver的Python项目详细描述


lamvery
==

构建状态覆盖范围审查程序代码质量版本


描述
==



aws lambda功能的用户友好部署和管理工具。

为什么用户友好?~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
-我们可以通过"jinja2"模板避免一些多余的内容引擎

标准lambda函数中不包含的附加功能
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^文件使用``kms``加密
-以及更多

**正确**到先前版本的alias
-deply(build)hooks
-以及更多


使用和管理相关服务的更有用功能
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^事件
-cloudwatch日志
-以及更多


requirements
==


-python2.7
-pip



建议
==

-virtualenv
**自动收集virtualenv中的轻量级和编译的库环境.*

安装代码::sh

pip安装lamvery

apt
--


…代码::sh

echo"deb https://dl.bintray.com/willyworks/deb trusty main"sudo tee-a/etc/apt/sources.list
sudo apt get update
sudo apt get install lamvery
export path=/opt/lamvery/bin:$path

代码::sh

echo"
[bintraybintry willyworks rpm]
name=bintray willyworks rpm
baseurl=https://dl.bintray.com/willyworks/rpm/centos/\$releaserver/\$basearch/
gpgcheck=0
enabled=1
"sudo tee-a/etc/yum.repos.d/bintray willyworks rpm.repo
sudo yum install lamvery
export path=/opt/lamvery/bin:$path


代码::sh

lamvery init

``.lamvery.yml``)
——代码::yml

profile:private
region:us-east-1
version:true
default_alias:test
clean_build:false
configuration:
name:lamvery test
runtime:python2.7
role:{{env['aws\u lambda_role']}
handler:lambda_函数。lambda_处理程序
描述:这是示例lambda函数。
超时:10
内存大小:128
环境变量:
myenv:foobar
vpc_配置:
子网:
-子网-cadf293
安全组:
-sg-4d095028

profile
~~~~~~~~

要使用的配置文件的名称。如果没有给定,则取决于环境的区域名。它取决于``boto3`。


r/>
clean构建
~~~~~~~~~~~~~~


在临时区域中构建存档(zip)。


配置
~~~~~~~~~~~~~~

-名称
函数的名称。

-运行时
正在上载的lambda函数的运行时环境。
|目前,`` lamvery``支持``python2.7``和``nodejs``.

-role
函数的iam角色的amazon资源名称(arn)。

-handler
代码中lambda调用以开始执行的函数。

-描述函数。

-超时
lambda终止函数的函数执行时间(秒)。

-内存大小
函数环境的内存量。

-环境变量
环境变量。

-vpc配置
vpc中访问资源的函数的vpc配置。
-subnets
vpc中的子网ID。
-security组
``.lamvery.event.yml```)
——代码::yml

规则:
-名称:foo
描述:bar
计划:'rate(5分钟)'
目标:
-id:测试目标id
输入:
此:
-为:a
-示例:输入

规则
~-|禁用
当此设置为真时,将cloudwatch事件
规则的状态更改为"禁用"。
jsonpath的值,用于在将匹配事件传递给目标时提取部分匹配事件。

*``input``和``input`path``是相互排斥的可选目标参数。*


``.lamvery.secret.yml``)
——代码::yml

密钥id:{{env['aws_kms_key_id']}
密码文本:
foo:4W9L7Haxaueen+D9YJMYY1U1I7VVQZ9I8+E2ubkxaqebagbagB4umVZyox2WWWWZy2WWWZy2WWZy2WWZy2WWZy2WWWZYN7WFBMN7WFM/SPPNTLAAABMGWGWWQQQQFBFBQQBQWQBQWQBQWQBQWQBQWQWQQQQQBWWWWQQQQQQQQQQBWWWWQQQQQQQQQQQQQQQQQQWWWWWQQQQQQQQQQQQQQWWWWWWWQQQQQQ>键ID在KMS上加密密钥的。

~~~~~~~~~~~~~~~~~~~~

>要传递给lambda函数的名称和密码文本。

~~~~~~~~~~~~~~

要传递给lambda函数的文件名和加密内容。

存档(默认值:``.lamvery.exclude.yml``)
——代码::yml

-^.lamvery\.yml$
-^.lamvery\.event\.yml$
-^.lamvery\.secret\.yml$
-^.lamvery\.exclude\.yml$

使用正则表达式排除文件或目录。

action hooks(默认值:``.lamvery.hook.yml```)
——代码::yml

build:
pre:
-pip install-r requirements.txt-t./
post:[]


build
~~


一个接一个的建筑.

API网关集成(默认值:``.lamvery.api.yml``)
——代码::yml

api id:myipugal74
阶段:dev
cors:
来源:'*'
方法:
-获取
-选项
标题:
-内容类型
-x-amz-date
-授权
-x-api-key
配置:
招摇过市:"2.0"
信息:
标题:示例api
方案:
-https
路径:
/:
获取:
生成:
-应用程序/json
参数:
-名称:示例
in:查询
必需:false
类型:字符串
响应:
'200':
描述:200响应
架构:
$ref:'/definitions/sample'
定义:
示例:
类型:object

~~~~~


rest api的id。
当您使用
``-w``选项部署api时,会自动写入此项。

stage
~~

(跨源资源共享)选项。
如果未设置"x-amazon-apigateway-integration"选项,
这些是自动设置的。

-origin
用于名为"access control allow origin"的响应头。
-header s
用于名为"access control allow headers"的响应头。
-methods
用于名为"访问控制允许方法"。


这些是自动设置的。

代码::sh

lamvery build[-e<;env name>;=<;env value>;]

部署
~代码::sh

lamvery deploy[-e<;env name>;=<;env value>;][-a<;alias>;]


rollback
~~~~~

-回滚到函数的前一版本

**使用此命令必须执行以下操作之一。**

-deploy with``publish(-p,--publish)``和`` alias(-a,--alias)`
选项。
-在配置文件中打开(true)``版本控制``并将值设置为``默认别名`'。

::


lamvery rollback[-a<;alias>;]

将别名设置为功能

…代码::sh

lamvery set alias-a<;alias>;-v<;alias version>;


encrypt
~~~~~~~

-使用kms加密文本值

。代码::sh

lamvery encrypt[-s]-n<;secret name>;<;secret value>;

加密文件
~~~~~~~~~~~~~~

-使用kms加密文件

。代码::sh

lamvery encrypt[-s]-n<;filename>;<;本地文件路径>;

代码::sh

lamvery decrypt-n<;secret name>;


事件
~~~~~

-应用CloudWatch事件设置

…代码::sh

lamvery事件[-k][-a<;alias>;]


invoke
~~~~~

-调用函数并输出结果

代码::sh

lamvery invoke[-a<;alias>;][-v<;vers离子]{"foo":"bar"}

代码::sh

lamvery invoke[-a<;alias>;][-v<;version>;]path/to/input.json


logs
~~~~~

-查看函数的日志事件

。代码::sh

lamvery日志[-f][-f<;filter>;][-s<;start time string>;][-i<;interval seconds>;]

~~

-管理api

……代码::sh

lamvery api[-n][-r][-s<;stage name>;][-w]


generate
~~~~~~~~~

-generate skeleton files

代码::sh

lamvery generate-k<;文件类型>;

options
----

```-a``或``--alias`
~~~~~~~~~~~~~~~~~~~~~~~~

\`` api`
命令。
函数版本的别名。

`-c``或`--conf file``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

所有命令都需要此选项。
指定配置文件。
默认值:```.lamvery.yml`

`-d``或``--干运行`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

此选项是
``deploy`、``alias`、``rollback`、``events`所必需的,\`` api``命令。
输出配置和别名的差异,而不进行更新。

`-s``或`——单个文件`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

因此,您可以在
aws管理控制台中进行内联编辑。

``-l``或`——没有libs``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


``archive``和``deploy``命令需要此选项。
``--秘密名称``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~是的将
版本作为原子操作发布。

``-k``或`--保留空事件`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

此选项仅由"events"命令需要。保留空的
cloudwatch事件规则,该规则没有cloudwatch事件目标。

`-s``或`--store`
~~~~~~~~~~~~~~~~~~~~~~


|需要`-n``或``--secret name``选项。

``-v``或`--version``
~~~~~~~~~~~~~~~~~~~~~~~~~~

``invoke``需要此选项,\``回滚`
命令。
函数版本。

``-f``或`——跟随`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

此选项仅由``logs``命令需要。
``--过滤```
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(秒)监视日志事件。

`-s``或`--start`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``此选项仅由``logs``命令需要。
`;开始监视日志事件的时间。

`"2016-01-01 10:20:01:01:01:2016-01:01:01:30```

``-t``或````--target``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>
>
````set alias``命令只需要这个选项。
124;设置别名的目标版本的别名。
>

>
``````-e```或```````````````````````~~~~~~~~~

选项是"archive"和"deploy"命令所必需的。
传递给函数的环境变量。
**此选项可以是反复用于传递多个变量的示例:``foo=bar``

>
>``-r``````````````````````~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

仅由"api"命令需要。
api网关中阶段的名称。

`-w``或`--write id``
~~~~~~~~~~~~~~~~~~~~~~~~

``.lamvery.api.yml```>

``-n``或````—不集成````
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``生成``命令。
文件的类型。
允许的值:``函数`

``-n``或`--名称`
~~~~~~~~~~~~~~~~~~~~~~

lambda函数
==============================


1。在kms上创建密钥
~~~~~~~~~~~~~~~~~~~~~~~~~

请参见:
https://docs.aws.amazon.com/kms/latest/developerguide/create keys.html

2。为lambda函数创建iam角色
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


策略示例:

……代码::json

{
"version":"2012-10-17",
"statement":[
{
"effect":"allow",
"action":[
"kms:decrypt"
],
"resource":[
"arn:aws:kms:us-east-1:<;您的帐号>;:key/<;您的密钥id>;"
]
}
]
]
}
}


3。将密钥ID设置为配置文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


配置示例:

-.lamvery.yml

。代码::yml

profile:default
region:us-east-1
version:false
default\u alias:null
configuration:
name:sample\u lambda\u function
runtime:python2.7或nodejs
role:arn:aws:iam::00000000:role/lambda\u basic\u execution
处理程序:lambda_函数。lambda_处理程序
描述:这是示例lambda函数。
超时:10
内存大小:128

-.lamvery.secret.yml

……代码::yml

key_id:xxxx yyyy zzz<;-这里!
密码文本:{}
机密文件:{}

4。加密机密信息并将其存储到配置文件中
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~代码::sh

lamvery encrypt-s-n foo"这是个秘密"


5。编写函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


使用此命令生成骨架函数。

……代码::sh

lamvery generate-k函数

代码::py


print(lamvery.secret.get('foo')

-node.js

代码::js

var lamvery=require('./lamvery.js');


exports.lambda_handler=function(event,context){
lamvery.secret.get('foo',function(err,data){
console.log(data);
}
部署您的函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


命令示例:

……代码:sh

lamvery deploy

7.调用函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


命令示例:

……代码::sh

lamvery invoke{}


结果示例:

:::


start请求ID:13829C9C-9F13-11E5-921B-6F048CFF3C2D:13829C9C-9F13-11E5-921B-6F048CFF3C2D:13829C9C-9F13-11E5-921B-6F048CFF3C2D这是一个秘密



>如何使用lambda函数中的机密文件

=======================================================================================/>
1.在kms上创建密钥
~~~~~~~~~~~~~~~~~~~~~~~~~

请参见:
https://docs.aws.amazon.com/kms/latest/developerguide/create keys.html

2。为lambda函数创建iam角色
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


策略示例:

……代码::json

{
"version":"2012-10-17",
"statement":[
{
"effect":"allow",
"action":[
"kms:decrypt"
],
"resource":[
"arn:aws:kms:us-east-1:<;您的帐号>;:key/<;您的密钥id>;"
]
}
]
]
}
}


3。将密钥ID设置为配置文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


配置示例:

-.lamvery.yml

。代码::yml

profile:default
region:us-east-1
version:false
default\u alias:null
configuration:
name:sample\u lambda\u function
runtime:python2.7或nodejs
role:arn:aws:iam::00000000:role/lambda\u basic\u execution
处理程序:lambda_函数。lambda_处理程序
描述:这是示例lambda函数。
超时:10
内存大小:128

-.lamvery.secret.yml

……代码::yml

key_id:xxxx yyyy zzz<;-这里!
密码文本:{}
机密文件:{}

4。加密机密文件并将其存储到您的配置文件中
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

命令示例:

代码:sh

lamvery encrypt file-s-n foo.txt/path/to/local/confidential/file

5.编写函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


使用此命令生成骨架函数。

……代码::sh

lamvery generate-k函数

代码::py

import lamvery

def lambda_handler(事件,上下文):
print(打开(lamvery.secret.file('foo.txt','r').read())


-node.js

代码::js

var lamvery=require('./lamvery.js');


exports.lambda_handler=function(event,context){
lamvery.secret.file('foo.txt',function(err,path){
fs.readfile(path,'utf-8',function(err,txt){
console.log(txt);
});
});
}


6。部署您的函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


命令示例:

……代码:sh

lamvery deploy

7.调用函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


命令示例:

……代码::sh

lamvery invoke{}


结果示例:




start requestid:13829c9c-9f13-11e5-921b-6f048cff3c2d版本:$latest
这是一个机密文件
end requestid:13829c9c-9f13-11e5-921b-6f048cff3c2d


-源代码托管在"github"<;https://github.com/marcy terui/lamvery>;`\u
-报告有关"github
问题的问题/问题/功能请求<;https://github.com/marcy terui/lamvery/issues>;`\u

pull请求非常受欢迎!确保您的补丁经过了良好的测试。
理想情况下,为您所做的每个单独更改创建一个主题分支。对于
示例:

1。分拆回购
2。创建功能分支(``git checkout-b my new feature``)
3。提交更改(``git commit-am'添加了一些功能'``')
4。推到分支(``git push origin my new feature``)
5。创建新的拉取请求

authors
----

由"masashi
terui<;https://github.com/marcy terui>;`(marcy9114@gmail.com)

license
----

`license<;https://github.com/marcy terui/lamvery/blob/master/license>;```uuuu)

|构建状态图像::https://img.shields.io/travis/marcy terui/lamvery/master.svg
:目标:http://travis ci.org/marcy terui/lamvery
。|覆盖率图像::https://img.shields.io/covertalls/marcy terui/lamvery.svg
:目标:https://covertalls.io/github/marcy terui/lamvery
…|审查者代码质量图像::https://scrunizer-ci.com/g/marcy-terui/lamvery/badges/quality-score.png?b=主控
:目标:https://scrunizer-ci.com/g/marcy-terui/lamvery/?分支=主
…|版本image::https://img.shields.io/pypi/v/lamvery.svg
:目标:https://pypi.python.org/pypi/lamvery

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应