我正在创建EC2实例,并希望传递用户数据以附加文件系统,但我不知道如何将文件系统ID作为变量传递。
文件系统ID将通过API网关传递。我已经尝试以下,但用户数据包含$aa
而不是aa
值。
aa='fs-ce99bd38'
user_data = """#!bin/bash
sudo yum -y install nfs-utils
sudo mount -t efs -o tls $aa:/ efs
"""
client = boto3.client('ec2', region_name=REGION)
def lambda_handler(event, context):
instance = client.run_instances(
ImageId=AMI,
InstanceType=INSTANCE_TYPE,
KeyName=KEY_NAME,
UserData=user_data,
MaxCount=min_max_add,
MinCount=min_max_add
)
这就是在字符串中插入变量的方法:-)
如果你有一个比较现代的Python版本,你可以像这样使用f-string:
aa='fs-ce99bd38'
user_data = f"""#!bin/bash
sudo yum -y install nfs-utils
sudo mount -t efs -o tls {aa}:/ efs
"""
否则,好的旧格式也可以达到同样的效果:
aa='fs-ce99bd38'
user_data = """#!bin/bash
sudo yum -y install nfs-utils
sudo mount -t efs -o tls {}:/ efs
""".format(aa)
或者更老的%操作符
aa='fs-ce99bd38'
user_data = """#!bin/bash
sudo yum -y install nfs-utils
sudo mount -t efs -o tls %s:/ efs
""" % aa