使用 Python Boto 3 在文件中追加字符串
Append String in a file Using Python Boto 3
我正在使用 Python 编写一个 Lambda 函数。我需要收集具有指定标签键值对的 AMI 列表,并将其作为 JSON 文件写入 S3 存储桶。我的代码在下面,
import boto3
import json
client = boto3.client('ec2')
def lambda_handler(event, context):
response = client.describe_images(Owners=['self'])
versions = response['Images']
for x in range(len(versions)):
if {'Key': 'product', 'Value': 'code'} in response['Images'][x]['Tags']:
ImageId=versions[x]['ImageId']
print(ImageId)
s3 = boto3.resource('s3')
obj = s3.Object('my-ami-bucketforelk','hello.json')
obj.put(Body=json.dumps(ImageId))
除了一件事,我的 Lambda 工作正常。我的输出被覆盖。所以我一次只能写一个AMI ID。
有人可以帮我解决这个问题吗?
您正在为每个图像 ID 将对象写入 S3。相反,将图像 ID 累积在一个列表中,然后最后将其上传到 S3。例如:
import json
import boto3
ec2 = boto3.client('ec2')
s3 = boto3.resource('s3')
def lambda_handler(event, context):
response = ec2.describe_images(Owners=['self'])
versions = response['Images']
images = []
for x in range(len(versions)):
if {'Key': 'product', 'Value': 'code'} in response['Images'][x]['Tags']:
ImageId=versions[x]['ImageId']
images.append(ImageId)
obj = s3.Object('my-ami-bucketforelk', 'hello.json')
obj.put(Body=json.dumps(images))
我正在使用 Python 编写一个 Lambda 函数。我需要收集具有指定标签键值对的 AMI 列表,并将其作为 JSON 文件写入 S3 存储桶。我的代码在下面,
import boto3
import json
client = boto3.client('ec2')
def lambda_handler(event, context):
response = client.describe_images(Owners=['self'])
versions = response['Images']
for x in range(len(versions)):
if {'Key': 'product', 'Value': 'code'} in response['Images'][x]['Tags']:
ImageId=versions[x]['ImageId']
print(ImageId)
s3 = boto3.resource('s3')
obj = s3.Object('my-ami-bucketforelk','hello.json')
obj.put(Body=json.dumps(ImageId))
除了一件事,我的 Lambda 工作正常。我的输出被覆盖。所以我一次只能写一个AMI ID。
有人可以帮我解决这个问题吗?
您正在为每个图像 ID 将对象写入 S3。相反,将图像 ID 累积在一个列表中,然后最后将其上传到 S3。例如:
import json
import boto3
ec2 = boto3.client('ec2')
s3 = boto3.resource('s3')
def lambda_handler(event, context):
response = ec2.describe_images(Owners=['self'])
versions = response['Images']
images = []
for x in range(len(versions)):
if {'Key': 'product', 'Value': 'code'} in response['Images'][x]['Tags']:
ImageId=versions[x]['ImageId']
images.append(ImageId)
obj = s3.Object('my-ami-bucketforelk', 'hello.json')
obj.put(Body=json.dumps(images))