Amazon web services Cloudformation:如何根据用户输入配置资源
面对这种情况时,我正在为beanstalk编写Cloudformation模板。我的模板中有以下代码Amazon web services Cloudformation:如何根据用户输入配置资源,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,面对这种情况时,我正在为beanstalk编写Cloudformation模板。我的模板中有以下代码 SecurityGroupIngress: - IpProtocol: tcp FromPort: '80' ToPort: '80' SourceSecurityGroupId: !Ref ELBSecGroupForBeanStalk - IpProtocol: tcp FromPort: '22' ToPort:
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个端口。我想使可配置,因此可以使用相同的模板。我可以使它们参数化,但无法使其可配置 不幸的是,仅仅依靠云层形成是无法实现这一目标的。这将是一个动态的资源数量,这不是CF的一部分 您最好的选择是:
- 使用类似的工具动态生成将要使用的CloudFormation模板(因此具有动态数量的端口)
- 在模板上使用,而不是指定
。Lambda函数将SecurityGroupId以及端口号作为参数。从那里,您可以调用AWSAPI(使用NodeJS、Python或任何与Lambda一起工作的工具)并添加所需的端口。不要忘了在更新模板时包含更新和删除规则的代码securitygroupingres