Amazon web services Lambda函数不向安全组添加规则
我有这个python 3.7代码,也可以从本地计算机上运行。这是lambda函数的代码。但是,当我在AWS中测试它时,它不会将入站规则添加到安全组中。我想帮助它工作。同样,当我在本地计算机上运行它时,它工作正常Amazon web services Lambda函数不向安全组添加规则,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我有这个python 3.7代码,也可以从本地计算机上运行。这是lambda函数的代码。但是,当我在AWS中测试它时,它不会将入站规则添加到安全组中。我想帮助它工作。同样,当我在本地计算机上运行它时,它工作正常 import boto3 ec2 = boto3.client('ec2') def modify_sg_add_rules(event, context): response = ec2.authorize_secur
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": "*"
}
]
}
请帮帮我!
非常感谢。
--威利根据这些评论
该问题是由于使用了错误的名称引起的。它应该是处理程序的默认名称,而不是modify\u sg\u add\u rules
因此,解决方案是重命名
修改\u sg\u添加\u规则
到lambda\u处理程序
。另一种方法是将默认处理程序的名称更改为modify\u sg\u add\u rules
权限是否正确。您能否在本地工作站上显示实际的lambda代码,而不是您的脚本?另外,您是否检查了CloudWatch日志中的任何错误?以上是实际的lambda代码。谢谢我明白了,处理程序是modify\u sg\u add\u rules
。代码和权限是正确的。苹果酒'12.345.67.890/32'
是错误的,但我想它只是为了这个。您检查过CW日志了吗?只需将modify\u sg\u add\u rules
重命名为lambda\u handler
。是的!成功了!另外,我想指出的是,在将函数从modify_sg_add_rules重命名为lamdba_函数之后,我还必须单击Deploy。即使在将函数名更改为lambda_函数之后,它也无法工作,直到我单击Deploy。谢谢你,马辛。它起作用了!