如何使用Lambda

时间:2017-09-23 01:28:43

标签: amazon-web-services aws-lambda vpn boto3 aws-direct-connect

我想创建Amazon DirectConnect连接作为VPN,以将数据从我的公司网络传输到RDS实例。连接并不便宜,我当然不需要打开它。可能每天只需10分钟即可。有没有办法使用Lambda函数安排VPN连接的连接/断开事件,就像使用Python的Boto3库启动/停止EC2或RDS实例一样:

def handler(event, context):

    ec2 = boto3.client('ec2', region_name=region)

    ec2.start_instances(InstanceIds=instances)

虽然Boto3支持DirectConnect,但它似乎没有任何方法可以打开和关闭连接。有没有办法控制连接?

1 个答案:

答案 0 :(得分:0)

处理程序代码将如下所示

def handler(event, context):
    client = boto3.client('directconnect')
    response = client.delete_connection(
        connectionId='string'
     )

此lambda将删除由端口小时和数据传输费用收取的连接。

如果您有定义的时间窗口,则可以创建lambda并使用触发器自动创建和删除连接。

此处提供了文档:

http://boto3.readthedocs.io/en/latest/reference/services/directconnect.html#DirectConnect.Client.delete_connection

编辑1:

将LAG关联并解除关联:

http://boto3.readthedocs.io/en/latest/reference/services/directconnect.html#DirectConnect.Client.associate_connection_with_lag

http://boto3.readthedocs.io/en/latest/reference/services/directconnect.html#DirectConnect.Client.disassociate_connection_from_lag

您需要检查在删除所有连接后是否不会产生相关的端口费用。这样你就可以维护你的连接。

或者,您可以将您的connectionid存储为数据库中的引用,并在需要时从那里拉出来。

希望它有所帮助。