将现有Python应用程序导入AWS Lambda

时间:2019-02-05 22:00:58

标签: python aws-lambda

我需要为已离开公司的其他人编写的现有Python 2.7程序创建一个AWS Lambda版本。

以一个我需要转换的函数为例:

#!/usr/bin/env python

from aws_common import get_profiles,get_regions
from aws_ips import get_all_public_ips
import sys

def main(cloud_type):
    # csv header
    output_header = "profile,region,public ip"

    profiles = get_profiles(cloud_type)
    regions = get_regions(cloud_type)

    print output_header

    for profile in profiles:
        for region in regions:
            # public_ips = get_public_ips(profile,region)
            public_ips = get_all_public_ips(profile,region)

            for aws_ip in public_ips:
                print "%s,%s,%s" % (profile,region,aws_ip)

if __name__ == "__main__":
    cloud_type = 'commercial'
    if sys.argv[1]:
        if sys.argv[1] == 'govcloud':
            cloud_type = 'govcloud'

    main(cloud_type)

我需要知道如何使用上面代码中的事件和上下文参数将其创建为AWS处理程序。

如果我能找到一些有关如何做到这一点的指示,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以简单地开始在aws labda的处理程序中编写python函数。

在处理程序中,如果有任何类型的依赖关系,则只需在lambda内开始定义函数和变量以及uplaod zip文件。

如果您使用的是python 2.7,则可以按照lambda更改python版本。

我想建议server less框架,并将您的代码升级为lambda。从本地管理依赖代码管理非常容易。

您在这里使用aws_common并导入,您必须检查它是否在aws sdk中。

您可以导入aws-sdk并使用它

var aws = require('aws-sdk');  

exports.handler =  function (event, context) 
{  

}

在导出处理程序内部,您可以开始在python中进行循环或进一步开发