遇到这种情况时,我正在为beantalk编写Cloudformation模板。我的模板中包含以下代码
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '80'
ToPort: '80'
SourceSecurityGroupId: !Ref ELBSecGroupForBeanStalk
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !If
- Range
- !Ref AcessIPRange
- !Ref 'AWS::NoValue'
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
SourceSecurityGroupId: !If
- SecurityGroupRange
- !Ref CustomeSecurityGroup
- !Ref 'AWS::NoValue'
现在您可以看到我已经对端口22和80进行了硬编码,但是如何使它们可配置。
假设一个用户来了,并且想添加4个端口或6个端口。我想使其可配置,因此可以使用相同的模板。我可以使它们参数化,但无法获得可配置的方法。
答案 0 :(得分:0)
不幸的是,仅通过CloudFormation无法实现这一目标。这将是动态的资源数量,这不是CF的一部分。
您最好的选择是:
double shortestVreme = Double.MAX_VALUE;
for(Atleticar arrElement: niza) {
if(arrElement.getVreme() < shortestVreme) {
shortestVreme = arrElement.getVreme();
}
}
return shortestVreme; // from the method
。 Lambda函数将使用SecurityGroupId作为参数以及端口号。从那里,您可以调用AWS API(使用NodeJS,Python或与Lambda兼容的任何工具)并添加所需的端口。不要忘记在更新模板时也包含用于更新和删除规则的代码。