如何根据模板参数在Cloudformation模板中创建可变数量的EC2实例资源?
EC2 API和管理工具允许启动同一AMI的多个实例,但我无法使用Cloudformation找到如何执行此操作.
amazon-ec2 amazon-web-services aws-cloudformation autoscaling
AWS CloudFormation回滚(例如,UPDATE_ROLLBACK_IN_PROGRESS)一直在进行中,比如超过一个半小时.我想完全删除堆栈或强制停止任何活动.这可能吗?
谢谢!
我想创建一个EC2 cloudformation堆栈,基本上可以按照以下步骤进行描述:
1.-启动实例
2.-提供实例
3.-停止实例并从中创建AMI图像
4.-创建一个自动缩放组,将创建的AMI映像作为源以启动新实例.
基本上我可以在一个cloudformation模板中执行1和2,在第二个模板中执行4.我似乎无法做的是从云信息模板中的实例创建AMI图像,如果我想删除堆栈,基本上会产生必须手动删除AMI的问题.
话虽这么说,我的问题是:
1.-有没有办法从cloudformation模板中的实例创建AMI图像?
2.-如果1的答案为否,是否有办法添加AMI图像(或任何其他资源)使其成为完成堆栈的一部分?
编辑:
为了澄清,我已经解决了创建AMI并在云信息模板中使用它的问题,我只是无法创建AMI INSIDE的cloudformation模板或以某种方式将其添加到创建的堆栈中.
正如我对Rico的回答所评论的那样,我现在所做的是使用一个基本上有3个步骤的ansible playbook:
1.-使用cloudformation模板创建基本实例
2.-使用ansible创建在步骤1中创建的实例的AMI
3.-使用第二个云形式模板创建堆栈的其余部分(ELB,自动扩展组等),该模板更新在步骤1中创建的模板,并使用在步骤2中创建的AMI来启动实例.
这就是我现在管理它的方式,但我想知道是否有任何方法可以创建AMI INSIDE一个cloudformation模板,或者是否可以将创建的AMI添加到堆栈中(类似于告诉堆栈,"嘿,这属于你也是,所以处理它").
我正在使用Cloudformation创建AWS ECS服务.
一切似乎都成功完成,我可以看到实例被附加到负载均衡器,负载均衡器正在声明实例是健康的,如果我点击负载均衡器,我成功地被带到了我的运行容器.
看看ECS控制面板,我可以看到服务已经稳定,一切看起来还不错.我还可以看到容器是稳定的,并且没有被终止/重新创建.
但是,Cloudformation模板永远不会完成,它会在CREATE_IN_PROGRESS大约30-60分钟之后停留,当它回滚时声称服务没有稳定.看看CloudTrail,我可以看到一些RegisterInstancesWithLoadBalancer实例化的ecs-service-scheduler,都具有相同的参数,即相同的实例ID和负载均衡器.我正在使用ECS的标准IAM角色和权限,因此它不应该是权限问题.
有人有类似的问题吗?
我们正在使用CloudFormation模板创建一个S3存储桶.每当将文件添加到S3存储桶时,我想关联(将事件添加到S3存储桶)Lambda函数.
如何通过CloudFormation模板实现.CloudFormation中需要使用哪些属性.
我有一个尝试创建VPC的cloudformation脚本,每个AZ有一个子网.
当我跑:
aws ec2 describe-availablity-zones
Run Code Online (Sandbox Code Playgroud)
我得到了4个区域:
"AvailabilityZones": [
{
"State": "available",
"RegionName": "us-east-1",
"Messages": [],
"ZoneName": "us-east-1a"
},
{
"State": "available",
"RegionName": "us-east-1",
"Messages": [],
"ZoneName": "us-east-1b"
},
{
"State": "available",
"RegionName": "us-east-1",
"Messages": [],
"ZoneName": "us-east-1c"
},
{
"State": "available",
"RegionName": "us-east-1",
"Messages": [],
"ZoneName": "us-east-1d"
}
]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试创建堆栈时,出现错误:
"ResourceStatusReason": "Value (us-east-1a) for parameter availabilityZone
is invalid. Subnets can currently only be created in the following
availability zones: us-east-1c, us-east-1b, us-east-1d.",
Run Code Online (Sandbox Code Playgroud)
我正在指定AZ
"AvailabilityZone" : {
"Fn::Select" : [ "0", …Run Code Online (Sandbox Code Playgroud) 我的团队有一个在执行 IAM 角色下运行的管道。我们希望通过 CloudFormation 或 CDK 将代码部署到 AWS。
过去,我们会在创建/更新 CloudFormation 堆栈之前使用执行 IAM 角色将一些工件上传到 S3 存储桶。
我们最近切换到 CDK,并试图通过使用 CDK Deploy 获得尽可能多的自动化,但遇到了许多我们需要添加的权限项,而我们之前没有这些项(例如,cloudformation:GetTemplate) .
我们不想只授予 * (我们想遵循最小权限),但我找不到任何明确的记录列表。
CDK Deploy 是否有标准的权限列表?除了标准列表之外,还有什么“值得拥有的”吗?
我正在为我的环境创建AWS Cloudformation模板,但我找不到为API Gateway方法启用CORS的方法.
我可以使用AWS控制台配置它(这是官方文档),但是如何在Cloudformation模板中执行此操作?
我已经将我的cognito用户池cloudformation模板工作,并将其集成到我的api网关.但不知何故,我仍然需要手动配置应用客户端设置,域和联合身份,以便为用户提供有效的登录门户.我一直在寻找自动化这些的可能解决方案,但我似乎无法找到任何接近它的东西.
我想通过cloudformation sam模板自动配置应用客户端设置,域和联合身份,因此我不必手动执行这些操作.
任何建议都非常感谢.谢谢.
(附件已发布以获取更多信息)
我可以使用cloudformation创建一个S3存储桶,但是想在S3存储桶中创建一个文件夹
<mybucket>--><myfolder>
Run Code Online (Sandbox Code Playgroud)
请让我知道用于在存储桶中创建文件夹的模板......两者都应该在同一时间创建...
我正在使用AWS lambda,如下所示
stackname = 'myStack'
client = boto3.client('cloudformation')
response = client.create_stack(
StackName= (stackname),
TemplateURL= 'https://s3.amazonaws.com/<myS3bucket>/<myfolder>/nestedstack.json',
Parameters=<params>
)
Run Code Online (Sandbox Code Playgroud) amazon-ec2 ×2
amazon-s3 ×2
amazon-ami ×1
amazon-ecs ×1
amazon-iam ×1
autoscaling ×1
aws-cdk ×1
cognito ×1
cors ×1
sam ×1
yaml ×1