Python Forum

Full Version: Heeelp! I'm stuck... Girl is freakin' here :(
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I would like to accomplish the following using Python Lambda function:

- Pull subscription ID from the folder within in the S3 bucket
- Query the API in a loop for every subscription ID ( This is the API call: https://faktor.chargify.com/subscription...sages.json)
- Store the result of the API in a new folder in the S3 bucket

So far I was only able to make the following Python code read files from the S3 bucket:
import boto3
def lambda_handler(event, context):
s3 = boto3.client("s3")

if event:
print("Event : ", event)
file_obj = event["Records"][0]
filename = str(file_obj['s3']['object']['key'])
print("Filename: " , filename)
fileObj = s3.get_object(Bucket = "chargifytesting" , Key=filename)
file_content = fileObj["Body"].read().decode('utf-8')
print(file_content)
I haven't run any of your code, but you need to indent after you use a colon.
import boto3
def lambda_handler(event, context):
    s3 = boto3.client("s3")
 
if event:
    print("Event : ", event)
    file_obj = event["Records"][0]
    filename = str(file_obj['s3']['object']['key'])
    print("Filename: " , filename)
    fileObj = s3.get_object(Bucket = "chargifytesting" , Key=filename)
    file_content = fileObj["Body"].read().decode('utf-8')
    print(file_content)
Try that and post your errors if it doesn't work

Also, you do not appear to be calling lambda_handler anywhere in your code.
(Jan-08-2020, 03:48 PM)Clunk_Head Wrote: [ -> ]ou do not appear to be calling lambda_handler anywhere in your code
obviously the whole if block is part of the function - e.g. it uses event
(Jan-08-2020, 04:14 PM)buran Wrote: [ -> ]
(Jan-08-2020, 03:48 PM)Clunk_Head Wrote: [ -> ]ou do not appear to be calling lambda_handler anywhere in your code
obviously the whole if block is part of the function - e.g. it uses event

Ahh, that changes the code a bit more then
import boto3
def lambda_handler(event, context):
    s3 = boto3.client("s3")
  
    if event:
        print("Event : ", event)
        file_obj = event["Records"][0]
        filename = str(file_obj['s3']['object']['key'])
        print("Filename: " , filename)
        fileObj = s3.get_object(Bucket = "chargifytesting" , Key=filename)
        file_content = fileObj["Body"].read().decode('utf-8')
        print(file_content)