Amazon web services 创建堆栈时运行bash脚本
我正在设计一个AWS堆栈,其中包含多个实例,这些实例运行由几个任务组成的少量服务。其中一个服务使用NFS存储配置,在创建堆栈时需要设置一次此配置 我想出了一种在创建堆栈时运行一次配置脚本的方法:Amazon web services 创建堆栈时运行bash脚本,amazon-web-services,amazon-ec2,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,我正在设计一个AWS堆栈,其中包含多个实例,这些实例运行由几个任务组成的少量服务。其中一个服务使用NFS存储配置,在创建堆栈时需要设置一次此配置 我想出了一种在创建堆栈时运行一次配置脚本的方法: 配置需要配置自身以运行单个任务的服务 任务启动时,检查配置是否存在。如果没有,请运行配置脚本,然后更新所需的任务计数,以便创建其他实例 (1) 是避免竞争条件所必需的 虽然这很有效,但我觉得这是一种非常简单的实现方法:在创建堆栈时运行一次bash脚本。有更好的方法吗?您可以使用属性为terminate(
虽然这很有效,但我觉得这是一种非常简单的实现方法:在创建堆栈时运行一次bash脚本。有更好的方法吗?您可以使用属性为
terminate
(在脚本执行后终止实例)的资源运行一次性Bash脚本,并将属性设置为堆栈中最后创建的资源(因此创建EC2实例并在最后执行Bash脚本):
通过“任务”和“服务”,您指的是ECS,还是完全其他什么?一些代码示例将有助于澄清您对当前方法的描述。
Description: Run a bash script once when a stack is created.
Mappings:
# amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2
RegionMap:
us-east-1:
"64": "ami-9be6f38c"
Resources:
MyResource:
Type: AWS::SNS::Topic
WebServer:
Type: AWS::EC2::Instance
DependsOn: MyResource
Properties:
ImageId: !FindInMap [ RegionMap, !Ref "AWS::Region", 64]
InstanceType: m3.medium
InstanceInitiatedShutdownBehavior: terminate
UserData:
"Fn::Base64":
!Sub |
#!/bin/bash
# [Contents of bash script here...]
shutdown -h now