Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在创建EC2实例时使用boto3在用户数据中传递变量_Python 3.x_Amazon Web Services_Aws Lambda_Boto3_User Data - Fatal编程技术网

Python 3.x 在创建EC2实例时使用boto3在用户数据中传递变量

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_处理程序(

我正在创建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_处理程序(事件、上下文):
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块内部吗?