• 1 odgovor
  • 1.948 pregleda
Pomoc oko Labda funkcije za S3 upload 29.03.2021. u 17:40 · pre 67 meseci #1
Pozfdrav svima,

Imam jednu jednostavnu Lambda funkciju za prikupljanje par atributa od EC2 - python Lambda

Code:

import boto3
import json

ec2 = boto3.resource('ec2')
s3 = boto3.client('s3')


def lambda_handler(event, context):
 bucket = 'project-lambda-test'
 file='/tmp/ec2_output.json'

 def write_json(data, file='/tmp/ec2_output.json'):
  with open(file, "w") as f:
   json.dump(data, f, indent=4)
 
 for instance in ec2.instances.all():
  
  data = {}
  data['Id'] = instance.id
  data['Platform'] = instance.platform
  data['Type'] = instance.instance_type
  data['PublicIP'] = instance.public_ip_address
  data['AMI'] = instance.image.id
  data['Subnet'] = instance.subnet_id

  write_json(data, file='/tmp/ec2_output.json')
  print(data)


Output:

Code:

{'Id': 'i-07fa7f24e222228d4', 'Platform': None, 'Type': 't2.micro', 'PublicIP': '2.2.2.2', 'AMI': 'ami-07a0844029df22222', 'Subnet': 'subnet-025a22222f3bd49a6'}
{'Id': 'i-0583022222c6ff5f9', 'Platform': None, 'Type': 't2.micro', 'PublicIP': '3.3.3.3', 'AMI': 'ami-07a0844029df22222', 'Subnet': 'subnet-0db44b9bf37022222'}
{'Id': 'i-00aa22222a7c7c1c7', 'Platform': None, 'Type': 't2.micro', 'PublicIP': '4.4.4.4', 'AMI': 'ami-07a0844029df22222', 'Subnet': 'subnet-0db44b9bf37022222'}




Dobijam tacno output koji zelim. Medjutim menije potrebno da snimim file koji sadrzi ovaj output test.json i da ga uploadeujem u S3. Lambda dozvoljava snimanje file iskljucino u /tmp/.
Prosto imam output koji zelim kako da to preusmetim u file /tmp/test.json i uploadujem u S3?

Nije toliko vazno uploadovanje, to mi nije problem. Potrebno mi je da ovaj output bude snimljen u file /tmp/whatever.json



[Ovu poruku je menjao Machiavelli... dana 29.03.2021. u 18:55 GMT+1]
Potpis
Having an idea is like being in a nutshell, but exchanging idea and collaborate
with
others is like being in infinite ocean of knowledge.
________________________________________________________________
____

Veruj u sebe. Ako ti neces, ko hoce?!

„Bolje živeti 100 godina kao milioner, nego sedam dana u bedi.“
Re: Pomoc oko Labda funkcije za S3 upload 29.03.2021. u 18:27 · pre 67 meseci #2
Evo resih, ja sam idiot...


Code:


import boto3
import json



ec2 = boto3.resource('ec2')
s3 = boto3.client('s3')


def lambda_handler(event, context):
 bucket = 'project-lambda-test'
 file='/tmp/ec2_output.json'
 

 with open(file, "w") as f:
  #sys.stdout = f
  for instance in ec2.instances.all():

   data = {}
   data['Id'] = instance.id
   data['Platform'] = instance.platform
   data['Type'] = instance.instance_type
   data['PublicIP'] = instance.public_ip_address
   data['AMI'] = instance.image.id
   data['Subnet'] = instance.subnet_id
    
   print(data)
   
   json.dump(data, f, indent=4)
 
 s3.upload_file(file, bucket, 'ec2_output.json')
Potpis
Having an idea is like being in a nutshell, but exchanging idea and collaborate
with
others is like being in infinite ocean of knowledge.
________________________________________________________________
____

Veruj u sebe. Ako ti neces, ko hoce?!

„Bolje živeti 100 godina kao milioner, nego sedam dana u bedi.“
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme