繁体   English   中英

Lambda Function 不向安全组添加规则

[英]Lambda Function Does not Add Rule to Security Group

我有这个 python 3.7 代码,它也可以在我的本地计算机上运行。 这是我的 lambda function 的代码。 但是,当我在 AWS 中对其进行测试时,它不会将入站规则添加到安全组。 我想帮助它工作。 同样,当我从本地计算机运行它时,它可以工作。

    import boto3
    
    ec2 = boto3.client('ec2')
    
    def modify_sg_add_rules(event, context):
            response = ec2.authorize_security_group_ingress(
            GroupName='boto3-sg',
            IpPermissions=[
                { 
                    'FromPort': 1521,
                    'IpProtocol': 'tcp',
                    'IpRanges': [
                        {
                            'CidrIp': '12.345.67.890/32',
                            'Description': 'My home IP',
                        },
                    ],
                    'ToPort': 1521,
                },
                ],
                DryRun=False
            ) #closes response
            return response

#if __name__ == '__main__':
#    modify_sg_add_rules()

这些是附加到角色的策略中的权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeSecurityGroups",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Resource": "*"
        }
    ]
}

请帮我! 谢谢! ——威利

根据评论。

该问题是由于使用了错误的名称lambda function 处理程序 而不是modify_sg_add_rules它应该是lambda_handler这是处理程序的默认名称。

因此,解决方案是将modify_sg_add_rules重命名lambda_handler 另一种方法是将默认处理程序的名称更改为modify_sg_add_rules

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM