Amazon web services 创建失败的ElasticLoadBalancer ;请求的可用性区域us-east-1c受到限制,不能与us-east-1a一起使用

Amazon web services 创建失败的ElasticLoadBalancer ;请求的可用性区域us-east-1c受到限制,不能与us-east-1a一起使用,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我使用的是美国东部(北弗吉尼亚州)的样本模板 启动AWS CloudFormation示例模板AutoScalingKeepAtNSample,但我一直收到以下错误: CREATE_FAILED AWS::ElasticLoadBalancing::LoadBalancer ElasticLoadBalancer The requested Availability Zone us-east-1c is constrained and cannot be used together wi

我使用的是美国东部(北弗吉尼亚州)的样本模板

启动AWS CloudFormation示例模板AutoScalingKeepAtNSample,但我一直收到以下错误:

CREATE_FAILED   AWS::ElasticLoadBalancing::LoadBalancer ElasticLoadBalancer 
The requested Availability Zone us-east-1c is constrained and cannot be used 
together with us-east-1a. Please retry your request by not choosing us-east-1c 
and us-east-1a together.
AWS仪表板报告我在美国东部(北弗吉尼亚州)地区

有什么建议说明这不起作用吗?

根据区域和可用区域文档的部分

随着可用性区域的不断增长,我们扩展它们的能力可能会受到限制。如果发生这种情况,我们可能会限制您在受约束的可用性区域中启动实例,除非您在该可用性区域中已有实例。最后,我们还可能从新客户的可用性区域列表中删除受约束的可用性区域。因此,您的帐户在一个区域中的可用区域数可能与另一个帐户不同

要解决此问题,您必须遵循错误的建议,并更改提供给ELB资源的可用性区域列表


要在CloudFormation模板中实现这一点,您可能需要向模板中添加输入,以手动提供可用区域列表(使用类型),而不是依赖返回所有可用区域的函数。

这感觉非常尴尬,特别是因为似乎没有办法提供与用户启动cloudformation堆栈所在区域匹配的默认模板参数。有没有办法编写一个自定义Fn::GetAvailableAzs函数来获取该区域中该帐户的可用Azs?@tleyden通常,您可以使用;但是,为了专门解决受约束的AZ错误,我不认为任何AWS API列出了受约束的AZ,因此即使使用自定义资源,也不可能实现自动解决。我能想到的唯一选择是向AWS提交一个支持请求,要求他们添加一个新的API,列出受约束的区域,或者修改
GetAvailableAZs
以过滤受约束的区域。