Python 3.x 在创建EC2实例时使用boto3在用户数据中传递变量
我正在创建EC2实例,希望将用户数据传递给附加文件系统,但我不知道如何将文件系统ID作为变量传递 文件系统ID将使用API网关传递。我尝试了以下操作,但用户数据包含Python 3.x 在创建EC2实例时使用boto3在用户数据中传递变量,python-3.x,amazon-web-services,aws-lambda,boto3,user-data,Python 3.x,Amazon Web Services,Aws Lambda,Boto3,User Data,我正在创建EC2实例,希望将用户数据传递给附加文件系统,但我不知道如何将文件系统ID作为变量传递 文件系统ID将使用API网关传递。我尝试了以下操作,但用户数据包含$aa而不是aa值 aa='fs-ce99bd38' 用户_data=“”#!bin/bash sudo yum-y安装nfs utils sudo mount-t efs-o tls$aa:/efs """ client=bot3.client('ec2',region\u name=region) def lambda_处理程序(
$aa
而不是aa
值
aa='fs-ce99bd38'
用户_data=“”#!bin/bash
sudo yum-y安装nfs utils
sudo mount-t efs-o tls$aa:/efs
"""
client=bot3.client('ec2',region\u name=region)
def lambda_处理程序(事件、上下文):
instance=client.run\u实例(
ImageId=AMI,
InstanceType=实例类型,
KeyName=键名称,
用户数据=用户数据,
最大计数=最小值最大值相加,
最小计数=最小值最大值相加
)
这就是将变量插入字符串的方式:-)
如果您有一个相当现代的Python版本,您可以使用如下f字符串:
aa='fs-ce99bd38'
用户_data=f“”#!bin/bash
sudo yum-y安装nfs utils
sudo mount-tefs-o tls{aa}:/efs
"""
否则,好的旧格式也会起作用:
aa='fs-ce99bd38'
用户_data=“”#!bin/bash
sudo yum-y安装nfs utils
sudo mount-tefs-o tls{}:/efs
“”格式(aa)
或者更老的%运算符
aa='fs-ce99bd38'
用户_data=“”#!bin/bash
sudo yum-y安装nfs utils
sudo mount-t efs-o tls%s:/efs
“”%aa
如果要使用aa环境变量,您需要将其分配到userdata块之外的位置。您可以将其分配到userdata块内部吗?