Trình xác thực base64 nodejs

Trong hướng dẫn này, bạn tạo một hàm Lambda tiêu thụ thư từ hàng đợi Amazon Simple Queue Service (Amazon SQS)

điều kiện tiên quyết

Hướng dẫn này giả định rằng bạn đã có một số kiến ​​thức về hoạt động Lambda cơ bản và bảng điều khiển Lambda. Nếu bạn chưa tạo, hãy làm theo hướng dẫn trong để tạo hàm Lambda đầu tiên của bạn

Để hoàn thành các bước sau, bạn cần có một thiết bị đầu cuối dòng lệnh hoặc shell để chạy các lệnh. Các lệnh và đầu ra dự kiến ​​được liệt kê trong các khối riêng biệt

aws --version

Bạn sẽ thấy đầu ra sau

aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64

Đối với các lệnh dài, ký tự thoát (

aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
1) được sử dụng để phân tách lệnh thành nhiều dòng

Trên Linux và macOS, hãy sử dụng trình quản lý gói và shell ưa thích của bạn

Trong Windows, một số lệnh Bash CLI mà bạn thường sử dụng với Lambda (chẳng hạn như

aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
0) không được thiết bị đầu cuối tích hợp sẵn của hệ điều hành hỗ trợ. Để có phiên bản Ubuntu và Bash tích hợp Windows, hãy cài đặt Hệ thống con Windows cho Linux

Tạo vai trò thực thi

Tạo một vai trò thực thi cấp cho chức năng của bạn quyền truy cập vào các tài nguyên AWS cần thiết

Để tạo một vai trò thực thi

  1. Mở bảng điều khiển AWS Identity and Access Management (IAM)

  2. Chọn Tạo vai trò

  3. Tạo một vai trò với các thuộc tính sau

    • Thực thể đáng tin cậy – AWS Lambda

    • Quyền – AWSLambdaSQSQueueExecutionRole

    • Tên vai trò –

      aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
      1

Chính sách AWSLambdaSQSQueueExecutionRole có các quyền mà hàm cần để đọc các mục từ Amazon SQS và ghi nhật ký vào Amazon CloudWatch Logs

Tạo chức năng

Tạo một hàm Lambda để xử lý các tin nhắn Amazon SQS của bạn. Nút sau. ví dụ về mã js 12 ghi từng thông báo vào nhật ký trong Nhật ký CloudWatch

Để biết ví dụ về mã bằng các ngôn ngữ khác, hãy xem Mã chức năng Amazon SQS mẫu

chỉ mục ví dụ. js

exports.handler = async function(event, context) {
  event.Records.forEach(record => {
    const { body } = record;
    console.log(body);
  });
  return {};
}

Để tạo chức năng

Thực hiện theo các bước này sẽ tạo một hàm trong Node. js 12. Đối với các ngôn ngữ khác, các bước thực hiện tương tự nhưng có một số chi tiết khác

  1. Lưu ví dụ mã dưới dạng tệp có tên

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    2

  2. Tạo gói triển khai

    zip function.zip index.js
  3. Tạo chức năng bằng lệnh

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    3 Giao diện dòng lệnh AWS (AWS CLI)

    ________số 8

Kiểm tra chức năng

Gọi thủ công hàm Lambda của bạn bằng cách sử dụng lệnh

aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
4 AWS CLI và một sự kiện Amazon SQS mẫu

Nếu trình xử lý hoạt động trở lại bình thường mà không có ngoại lệ, thì Lambda coi thư đã được xử lý thành công và bắt đầu đọc thư mới trong hàng đợi. Sau khi xử lý thành công một tin nhắn, Lambda sẽ tự động xóa nó khỏi hàng đợi. Nếu trình xử lý đưa ra một ngoại lệ, Lambda sẽ coi loạt thông báo đó không được xử lý thành công và Lambda sẽ gọi hàm đó với cùng một loạt thông báo

  1. Lưu JSON sau đây dưới dạng tệp có tên

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    5

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    1

    JSON trước đó mô phỏng một sự kiện mà Amazon SQS có thể gửi đến hàm Lambda của bạn, trong đó

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    6 chứa thông báo thực tế từ hàng đợi

  2. Chạy lệnh

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    4 AWS CLI sau

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    4

    Tùy chọn cli-binary-format là bắt buộc nếu bạn đang sử dụng AWS CLI phiên bản 2. Để đặt cài đặt này thành cài đặt mặc định, hãy chạy

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    8. Để biết thêm thông tin, xem

  3. Xác minh đầu ra trong tệp

    aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
    9

Tạo hàng đợi Amazon SQS

Tạo hàng đợi Amazon SQS mà hàm Lambda có thể sử dụng làm nguồn sự kiện

Để tạo một hàng đợi

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

  2. Chọn Tạo hàng đợi, sau đó định cấu hình hàng đợi. Để biết hướng dẫn chi tiết, hãy xem Tạo hàng đợi Amazon SQS (bảng điều khiển) trong Hướng dẫn dành cho nhà phát triển dịch vụ hàng đợi đơn giản của Amazon

  3. Sau khi tạo hàng đợi, hãy ghi lại Tên tài nguyên Amazon (ARN) của nó. Bạn cần điều này trong bước tiếp theo khi bạn liên kết hàng đợi với hàm Lambda của mình

Để tạo ánh xạ giữa hàng đợi Amazon SQS và hàm Lambda của bạn, hãy chạy lệnh

exports.handler = async function(event, context) {
  event.Records.forEach(record => {
    const { body } = record;
    console.log(body);
  });
  return {};
}
0 AWS CLI sau

aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
8

Để có danh sách ánh xạ nguồn sự kiện của bạn, hãy chạy lệnh sau

aws-cli/2.0.57 Python/3.7.4 Darwin/19.6.0 exe/x86_64
9

Kiểm tra thiết lập

Bây giờ bạn có thể kiểm tra thiết lập như sau

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

  2. Chọn tên của hàng đợi mà bạn đã tạo trước đó

  3. Chọn Gửi và nhận tin nhắn

  4. Trong Nội dung thư, hãy nhập một thư kiểm tra

  5. Chọn Gửi tin nhắn

Lambda thăm dò hàng đợi để cập nhật. Khi có thông báo mới, Lambda sẽ gọi hàm của bạn với dữ liệu sự kiện mới này từ hàng đợi. Hàm của bạn chạy và tạo nhật ký trong Amazon CloudWatch. Bạn có thể xem nhật ký trong bảng điều khiển CloudWatch

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 các tài nguyên AWS mà bạn không còn sử dụng nữa, bạn sẽ tránh được các khoản phí không cần thiết đối với tài khoản AWS của mình

Để xóa vai trò thực thi

  1. Mở bảng điều khiển IAM

  2. Chọn vai trò thực thi mà bạn đã tạo

  3. Chọn Xóa

  4. Nhập tên của vai trò trong trường nhập văn bản và chọn Xóa

Để xóa hàm Lambda

  1. Mở bảng điều khiển Lambda

  2. Chọn chức năng mà bạn đã tạo

  3. Chọn Hành động, Xóa

  4. Nhập

    exports.handler = async function(event, context) {
      event.Records.forEach(record => {
        const { body } = record;
        console.log(body);
      });
      return {};
    }
    1 vào trường nhập văn bản và chọn Xóa

Để xóa hàng đợi Amazon SQS

  1. Đăng nhập vào Bảng điều khiển quản lý AWS và mở bảng điều khiển Amazon SQS tại https. // bảng điều khiển. aws. amazon. com/sqs/