Hướng dẫn how do i read files from s3 using python aws lambda? - làm cách nào để đọc các tệp từ s3 bằng python aws lambda?

Bài đăng này giải thích cách đọc một tệp từ thùng S3 bằng hàm Python AWS Lambda. Chúng tôi sẽ sử dụng API ____10 để đọc các tệp từ thùng S3.

Trong hướng dẫn này, bạn sẽ học cách
  1. Đọc một tệp từ S3 bằng hàm Python Lambda.
  2. Liệt kê và đọc tất cả các tệp từ một tiền tố S3 cụ thể bằng hàm Python Lambda.

Tạo chức năng Lambda

  1. Đăng nhập vào tài khoản AWS và điều hướng đến dịch vụ AWS Lambda.AWS Lambda Service.

  2. Điều hướng đến chức năng AWS Lambda và chọn các chức năngFunctions

  3. Nhấp vào Tạo chức năngCreate function
  4. Chọn tác giả từ đầuAuthor from scratch
  5. Nhập các chi tiết dưới đây trong thông tin cơ bảnBasic information
    • Tên chức năng: test_lambda_functiontest_lambda_function
    • Thời gian chạy: Chọn thời gian chạy theo phiên bản Python từ đầu ra của bước 3Step 3
    • Kiến trúc: x86_64x86_64
    • Chọn vai trò thích hợp là có quyền nhóm S3 thích hợp từ vai trò thực hiện mặc định thay đổiChange default execution role
  6. Nhấp vào Tạo chức năngcreate function

Đọc một tệp từ S3 bằng chức năng Lambda

  • Nhập BOTO3 và tạo S3 Client
           
    import boto3
    s3_client = boto3.client["s3"]
           
    00
  • Xác định tên xô ____
  • Xác định Lambda Handler

    Viết mã bên dưới trong hàm Lambda và thay thế

           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    1.Lambda function and replace the
           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    1.

           
    def lambda_handler[event, context]:
      object_key = "OBJECT_KEY"  # replace object key
      file_content = s3_client.get_object[
          Bucket=S3_BUCKET, Key=object_key]["Body"].read[]
      print[file_content]
           
  • Hoàn thành mã để đọc tệp S3 với AWS Lambda Python
     
    import boto3
    
    s3_client = boto3.client["s3"]
    S3_BUCKET = 'BUCKET_NAME'
    
    def lambda_handler[event, context]:
      object_key = "OBJECT_KEY"  # replace object key
      file_content = s3_client.get_object[
          Bucket=S3_BUCKET, Key=object_key]["Body"].read[]
      print[file_content]
          
           

Liệt kê và đọc tất cả các tệp từ tiền tố S3 cụ thể

  • Xác định tên xô và tiền tố .________ 4
  • Viết mã bên dưới trong Lambda Handler để liệt kê và đọc tất cả các tệp từ tiền tố S3. Thay thế

           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    2 và
           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    3.Lambda handler to list and read all the files from a S3 prefix. Replace
           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    2 and
           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    3.

     
      
    def lambda_handler[event, context]:
        response = s3_client.list_objects_v2[
            Bucket=S3_BUCKET, Prefix=S3_PREFIX, StartAfter=S3_PREFIX,]
        s3_files = response["Contents"]
        for s3_file in s3_files:
            file_content = json.loads[s3_client.get_object[
                Bucket=S3_BUCKET, Key=s3_file["Key"]]["Body"].read[]]
            print[file_content]
         
  • Hoàn thành mã mã để liệt kê và đọc tất cả các tệp.
  •    
    import json
    import boto3
    
    s3_client = boto3.client["s3"]
    S3_BUCKET = 'BUCKET_NAME'
    S3_PREFIX = 'BUCKET_PREFIX'
    
    
    def lambda_handler[event, context]:
        response = s3_client.list_objects_v2[
            Bucket=S3_BUCKET, Prefix=S3_PREFIX, StartAfter=S3_PREFIX,]
        s3_files = response["Contents"]
        for s3_file in s3_files:
            file_content = json.loads[s3_client.get_object[
                Bucket=S3_BUCKET, Key=s3_file["Key"]]["Body"].read[]]
            print[file_content]
     

Chọn "Tác giả từ đầu", tên hàm = CSV_S3_LAMBDA, RUNTIME = PYTHON và vai trò chúng tôi đã tạo với chính sách trên được đính kèm vào blog này và nhấp vào chức năng Tạo ..

Làm cách nào để chuyển các tệp từ S3 sang Lambda?

Bước 0: Tạo một thư mục dự án. Trước hết, hãy tạo một thư mục dự án cho chức năng Lambda của bạn và các phụ thuộc của nó. ....

Bước 1: Cài đặt phụ thuộc. ....aws.amazon.com and choose Create an AWS Account. For instructions, see How do I create and activate a new AWS account?

Bước 2: Thêm trình xử lý Lambda. ....

Bước 3: Tải tệp lên S3 và tạo URL ký trước. ....

Bước 5: Gói chức năng Lambda. ....

Bước 6: Triển khai chức năng Lambda ..

  1. Mở bảng điều khiển Amazon S3.Amazon S3 console.

  2. Chọn xô bạn đã tạo.Create bucket.

  3. Nhập tên của thùng vào hộp văn bản.General configuration, do the following:

    1. Chọn xác nhận.Bucket name, enter a unique name.

    2. Bước tiếp theoAWS Region, choose a Region. Note that you must create your Lambda function in the same Region.

  4. Chọn xô bạn đã tạo.Create bucket.

Nhập tên của thùng vào hộp văn bản.Buckets page, which displays a list of all buckets in your account in the current Region.

Chọn xác nhận.

  1. Bước tiếp theoBuckets page of the Amazon S3 console, choose the name of the bucket that you created.

  2. Hãy thử hướng dẫn nâng cao hơn. Trong hướng dẫn này, S3 Trigger gọi một hàm để tạo hình ảnh thu nhỏ cho mỗi tệp hình ảnh được tải lên thùng S3 của bạn. Hướng dẫn này đòi hỏi một mức độ vừa phải của kiến ​​thức miền AWS và Lambda. Bạn sử dụng giao diện dòng lệnh AWS [AWS CLI] để tạo tài nguyên và bạn tạo gói triển khai lưu trữ tệp .zip cho chức năng của bạn và các phụ thuộc của nó.Objects tab, choose Upload.

  3. Làm cách nào để đọc S3 trong AWS Lambda?Upload page.

  4. Đọc một tệp từ S3 bằng hàm Lambda.Upload.

Nhập BOTO3 và tạo máy khách S3. Nhập boto3 s3_client = boto3.client ["s3"].

Xác định tên xô. S3_bucket_name = 'bucket_name'.

Xác định Lambda Handler. Viết mã bên dưới trong hàm Lambda và thay thế Object_Key. ....

  1. Hoàn thành mã để đọc tệp S3 với AWS Lambda Python ..Functions page of the Lambda console.

  2. Làm cách nào để lấy dữ liệu từ AWS S3 bằng Python?Create function.

  3. Cách tải lên và tải xuống các tệp từ AWS S3 bằng Python [2022].Create function page, choose Use a blueprint.

  4. Trong bản thiết kế, nhập

           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    4 vào hộp tìm kiếm.Blueprints, enter
           
    S3_BUCKET_NAME = 'BUCKET_NAME'
           
    4 in the search box.

  5. Trong kết quả tìm kiếm, hãy thực hiện một trong những điều sau đây:

    • Đối với chức năng Node.js, chọn S3-Get-Object.s3-get-object.

    • Đối với chức năng Python, chọn S3-Get-Object-Python.s3-get-object-python.

  6. Chọn Cấu hình.Configure.

  7. Theo thông tin cơ bản, làm như sau:Basic information, do the following:

    1. Đối với tên chức năng, nhập

             
      S3_BUCKET_NAME = 'BUCKET_NAME'
             
      5.Function name, enter
             
      S3_BUCKET_NAME = 'BUCKET_NAME'
             
      5.

    2. Đối với vai trò thực thi, chọn Tạo một vai trò mới từ các mẫu chính sách AWS.Execution role, choose Create a new role from AWS policy templates.

    3. Đối với tên vai, nhập

             
      S3_BUCKET_NAME = 'BUCKET_NAME'
             
      6.Role name, enter
             
      S3_BUCKET_NAME = 'BUCKET_NAME'
             
      6.

  8. Trong S3 Trigger, chọn Xô S3 mà bạn đã tạo trước đó.S3 trigger, choose the S3 bucket that you created previously.

    Khi bạn định cấu hình kích hoạt S3 bằng bảng điều khiển Lambda, bảng điều khiển sẽ sửa đổi chính sách dựa trên tài nguyên của chức năng của bạn để cho phép Amazon S3 gọi chức năng.

  9. Chọn Tạo chức năng.Create function.

Xem lại mã chức năng

Hàm Lambda truy xuất tên xô S3 nguồn và tên khóa của đối tượng được tải lên từ tham số sự kiện mà nó nhận được. Hàm sử dụng API Amazon S3

       
S3_BUCKET_NAME = 'BUCKET_NAME'
       
7 để truy xuất loại nội dung của đối tượng.

Trong khi xem chức năng của bạn trong bảng điều khiển Lambda, bạn có thể xem lại mã chức năng trên tab Mã, trong Nguồn mã. Mã trông giống như sau:Lambda console , you can review the function code on the Code tab, under Code source. The code looks like the following:

Kiểm tra trong bảng điều khiển

Gọi hàm Lambda theo cách thủ công bằng cách sử dụng dữ liệu sự kiện Amazon S3 mẫu.

Để kiểm tra chức năng Lambda bằng cách sử dụng bảng điều khiển

  1. Trên tab Code, trong nguồn mã, chọn mũi tên bên cạnh thử nghiệm, sau đó chọn định cấu hình các sự kiện kiểm tra từ danh sách thả xuống.Code tab, under Code source, choose the arrow next to Test, and then choose Configure test events from the dropdown list.

  2. Trong cửa sổ Cấu hình sự kiện kiểm tra, hãy làm như sau:Configure test event window, do the following:

    1. Chọn Tạo sự kiện thử nghiệm mới.Create new test event.

    2. Đối với mẫu sự kiện, chọn Amazon S3 Put [S3-PUT].Event template, choose Amazon S3 Put [s3-put].

    3. Để biết tên sự kiện, hãy nhập tên cho sự kiện thử nghiệm. Ví dụ,

             
      S3_BUCKET_NAME = 'BUCKET_NAME'
             
      8.Event name, enter a name for the test event. For example,
             
      S3_BUCKET_NAME = 'BUCKET_NAME'
             
      8.

    4. Trong sự kiện thử nghiệm JSON, hãy thay thế tên xô S3 [

             
      S3_BUCKET_NAME = 'BUCKET_NAME'
             
      9] và khóa đối tượng [
             
      def lambda_handler[event, context]:
        object_key = "OBJECT_KEY"  # replace object key
        file_content = s3_client.get_object[
            Bucket=S3_BUCKET, Key=object_key]["Body"].read[]
        print[file_content]
             
      0] bằng tên xô và tên tệp thử nghiệm của bạn. Sự kiện thử nghiệm của bạn sẽ trông tương tự như sau:

      {
        "Records": [
          {
            "eventVersion": "2.0",
            "eventSource": "aws:s3",
            "awsRegion": "us-west-2",
            "eventTime": "1970-01-01T00:00:00.000Z",
            "eventName": "ObjectCreated:Put",
            "userIdentity": {
              "principalId": "EXAMPLE"
            },
            "requestParameters": {
              "sourceIPAddress": "127.0.0.1"
            },
            "responseElements": {
              "x-amz-request-id": "EXAMPLE123456789",
              "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH"
            },
            "s3": {
              "s3SchemaVersion": "1.0",
              "configurationId": "testConfigRule",
              "bucket": {
                "name": "my-s3-bucket",
                "ownerIdentity": {
                  "principalId": "EXAMPLE"
                },
                "arn": "arn:aws:s3:::example-bucket"
              },
              "object": {
                "key": "HappyFace.jpg",
                "size": 1024,
                "eTag": "0123456789abcdef0123456789abcdef",
                "sequencer": "0A1B2C3D4E5F678901"
              }
            }
          }
        ]
      }
    5. Chọn Tạo.Create.

  3. Để gọi chức năng với sự kiện kiểm tra của bạn, trong nguồn mã, chọn Kiểm tra.Code source, choose Test.

    Tab Kết quả thực thi hiển thị phản hồi, nhật ký chức năng và ID yêu cầu, tương tự như sau:Execution results tab displays the response, function logs, and request ID, similar to the following:

    Response
    "image/jpeg"
    
    Function Logs
    START RequestId: 12b3cae7-5f4e-415e-93e6-416b8f8b66e6 Version: $LATEST
    2021-02-18T21:40:59.280Z	12b3cae7-5f4e-415e-93e6-416b8f8b66e6	INFO	INPUT BUCKET AND KEY:  { Bucket: 'my-s3-bucket', Key: 'HappyFace.jpg' }
    2021-02-18T21:41:00.215Z	12b3cae7-5f4e-415e-93e6-416b8f8b66e6	INFO	CONTENT TYPE: image/jpeg
    END RequestId: 12b3cae7-5f4e-415e-93e6-416b8f8b66e6
    REPORT RequestId: 12b3cae7-5f4e-415e-93e6-416b8f8b66e6	Duration: 976.25 ms	Billed Duration: 977 ms	Memory Size: 128 MB	Max Memory Used: 90 MB	Init Duration: 430.47 ms        
    
    Request ID
    12b3cae7-5f4e-415e-93e6-416b8f8b66e6

Kiểm tra với trình kích hoạt S3

Gọi chức năng của bạn khi bạn tải lên một tệp lên nhóm nguồn Amazon S3.

Để kiểm tra chức năng Lambda bằng cách sử dụng trình kích hoạt S3

  1. Trên trang xô của bảng điều khiển Amazon S3, chọn tên của thùng nguồn mà bạn đã tạo trước đó.Buckets page of the Amazon S3 console, choose the name of the source bucket that you created earlier.

  2. Trên trang tải lên, tải lên một vài tệp hình ảnh .jpg hoặc .png lên xô.Upload page, upload a few .jpg or .png image files to the bucket.

  3. Mở trang chức năng của bảng điều khiển Lambda.Functions page of the Lambda console.

  4. Chọn tên của chức năng của bạn [Hàm của tôi-S3].my-s3-function].

  5. Để xác minh rằng chức năng chạy một lần cho mỗi tệp mà bạn đã tải lên, hãy chọn tab Monitor. Trang này hiển thị đồ thị cho các số liệu mà Lambda gửi đến CloudWatch. Đếm trong biểu đồ mời sẽ khớp với số lượng tệp mà bạn đã tải lên nhóm Amazon S3.Monitor tab. This page shows graphs for the metrics that Lambda sends to CloudWatch. The count in the Invocations graph should match the number of files that you uploaded to the Amazon S3 bucket.

    Để biết thêm thông tin về các biểu đồ này, hãy xem các chức năng giám sát trên bảng điều khiển Lambda.

  6. [Tùy chọn] Để xem nhật ký trong bảng điều khiển CloudWatch, chọn Xem nhật ký trong CloudWatch. Chọn luồng nhật ký để xem đầu ra nhật ký cho một trong các yêu cầu chức năng.View logs in CloudWatch. Choose a log stream to view the logs output for one of the function invocations.

Làm sạch tài nguyên của bạn

Bây giờ bạn có thể xóa các tài nguyên mà bạn đã tạo cho hướng dẫn này, trừ khi bạn muốn giữ lại chúng. Bằng cách xóa tài nguyên AWS mà bạn không còn sử dụng, bạn ngăn chặn các khoản phí không cần thiết cho tài khoản AWS của mình.

Để xóa chức năng Lambda

  1. Mở trang chức năng của bảng điều khiển Lambda.Functions page of the Lambda console.

  2. Chọn tên của chức năng của bạn [Hàm của tôi-S3].

  3. Để xác minh rằng chức năng chạy một lần cho mỗi tệp mà bạn đã tải lên, hãy chọn tab Monitor. Trang này hiển thị đồ thị cho các số liệu mà Lambda gửi đến CloudWatch. Đếm trong biểu đồ mời sẽ khớp với số lượng tệp mà bạn đã tải lên nhóm Amazon S3.Actions, then choose Delete.

  4. Để biết thêm thông tin về các biểu đồ này, hãy xem các chức năng giám sát trên bảng điều khiển Lambda.Delete.

[Tùy chọn] Để xem nhật ký trong bảng điều khiển CloudWatch, chọn Xem nhật ký trong CloudWatch. Chọn luồng nhật ký để xem đầu ra nhật ký cho một trong các yêu cầu chức năng.

  1. Làm sạch tài nguyên của bạnPolicies page of the AWS Identity and Access Management [IAM] console.

  2. Bây giờ bạn có thể xóa các tài nguyên mà bạn đã tạo cho hướng dẫn này, trừ khi bạn muốn giữ lại chúng. Bằng cách xóa tài nguyên AWS mà bạn không còn sử dụng, bạn ngăn chặn các khoản phí không cần thiết cho tài khoản AWS của mình.AWSLambdaS3ExecutionRole-.

  3. Để xóa chức năng LambdaPolicy actions, Delete.

  4. Để biết thêm thông tin về các biểu đồ này, hãy xem các chức năng giám sát trên bảng điều khiển Lambda.Delete.

[Tùy chọn] Để xem nhật ký trong bảng điều khiển CloudWatch, chọn Xem nhật ký trong CloudWatch. Chọn luồng nhật ký để xem đầu ra nhật ký cho một trong các yêu cầu chức năng.

  1. Làm sạch tài nguyên của bạnRoles page of the IAM console.

  2. Bây giờ bạn có thể xóa các tài nguyên mà bạn đã tạo cho hướng dẫn này, trừ khi bạn muốn giữ lại chúng. Bằng cách xóa tài nguyên AWS mà bạn không còn sử dụng, bạn ngăn chặn các khoản phí không cần thiết cho tài khoản AWS của mình.

  3. Để xóa chức năng LambdaDelete role.

  4. Chọn chức năng mà bạn đã tạo.Yes, delete.

Chọn hành động, sau đó chọn Xóa.

  1. Chọn Xóa.Amazon S3 console.

  2. Để xóa chính sách IAM

  3. Để biết thêm thông tin về các biểu đồ này, hãy xem các chức năng giám sát trên bảng điều khiển Lambda.Delete.

  4. [Tùy chọn] Để xem nhật ký trong bảng điều khiển CloudWatch, chọn Xem nhật ký trong CloudWatch. Chọn luồng nhật ký để xem đầu ra nhật ký cho một trong các yêu cầu chức năng.

  5. Làm sạch tài nguyên của bạnConfirm.

Bây giờ bạn có thể xóa các tài nguyên mà bạn đã tạo cho hướng dẫn này, trừ khi bạn muốn giữ lại chúng. Bằng cách xóa tài nguyên AWS mà bạn không còn sử dụng, bạn ngăn chặn các khoản phí không cần thiết cho tài khoản AWS của mình.

Để xóa chức năng Lambda

Làm cách nào để đọc S3 trong AWS Lambda?

Đọc một tệp từ S3 bằng hàm Lambda..
Nhập BOTO3 và tạo máy khách S3. Nhập boto3 s3_client = boto3.client ["s3"].
Xác định tên xô. S3_bucket_name = 'bucket_name'.
Xác định Lambda Handler. Viết mã bên dưới trong hàm Lambda và thay thế Object_Key. ....
Hoàn thành mã để đọc tệp S3 với AWS Lambda Python ..

Làm cách nào để lấy dữ liệu từ AWS S3 bằng Python?

Cách tải lên và tải xuống các tệp từ AWS S3 bằng Python [2022]..
Bước 1: Thiết lập tài khoản. ....
Bước 2: Tạo người dùng. ....
Bước 3: Tạo một thùng. ....
Bước 4: Tạo chính sách và thêm nó vào người dùng của bạn. ....
Bước 5: Tải xuống AWS CLI và định cấu hình người dùng của bạn. ....
Bước 6: Tải lên các tệp của bạn ..

Làm cách nào để đọc tệp CSV từ thùng S3 trong AWS Lambda?

Hàm Lambda để đọc tệp CSV từ thùng S3 và đẩy vào bảng DynamoDB..
Bảng điều khiển Goto Lambda và nhấp vào Chức năng Tạo ..
Chọn "Tác giả từ đầu", tên hàm = CSV_S3_LAMBDA, RUNTIME = PYTHON và vai trò chúng tôi đã tạo với chính sách trên được đính kèm vào blog này và nhấp vào chức năng Tạo ..

Làm cách nào để chuyển các tệp từ S3 sang Lambda?

Bước 0: Tạo một thư mục dự án.Trước hết, hãy tạo một thư mục dự án cho chức năng Lambda của bạn và các phụ thuộc của nó.....
Bước 1: Cài đặt phụ thuộc.....
Bước 2: Thêm trình xử lý Lambda.....
Bước 3: Tải tệp lên S3 và tạo URL ký trước.....
Bước 5: Gói chức năng Lambda.....
Bước 6: Triển khai chức năng Lambda ..

Bài Viết Liên Quan

Chủ Đề