Cấu hình Nodejs s3

Đặt cấu hình chung với AWS.Config thường dễ bắt đầu hơn nhưng cấu hình cấp dịch vụ có thể cung cấp nhiều quyền kiểm soát hơn đối với các dịch vụ riêng lẻ. Cấu hình chung được chỉ định bởi AWS.Config cung cấp cài đặt mặc định cho các đối tượng dịch vụ mà bạn tạo sau đó, đơn giản hóa cấu hình của chúng. Tuy nhiên, bạn có thể cập nhật cấu hình của các đối tượng dịch vụ riêng lẻ khi nhu cầu của bạn khác với cấu hình chung

  • Cài đặt cấu hình cho mỗi dịch vụ

    Mỗi dịch vụ mà bạn sử dụng trong SDK dành cho JavaScript được truy cập thông qua một đối tượng dịch vụ là một phần của API cho dịch vụ đó. Ví dụ: để truy cập dịch vụ Amazon S3, bạn tạo đối tượng dịch vụ Amazon S3. Bạn có thể chỉ định cài đặt cấu hình dành riêng cho một dịch vụ như một phần của hàm tạo cho đối tượng dịch vụ đó. Khi bạn đặt các giá trị cấu hình trên một đối tượng dịch vụ, hàm tạo sẽ lấy tất cả các giá trị cấu hình được sử dụng bởi AWS.Config, bao gồm cả thông tin xác thực

    Ví dụ: nếu bạn cần truy cập các đối tượng Amazon EC2 ở nhiều Khu vực, hãy tạo một đối tượng dịch vụ EC2 cho từng Khu vực rồi đặt cấu hình Khu vực của từng đối tượng dịch vụ tương ứng

    var ec2_regionA = new AWS.EC2({region: 'ap-southeast-2', maxRetries: 15, apiVersion: '2014-10-01'});
    var ec2_regionB = new AWS.EC2({region: 'us-east-1', maxRetries: 15, apiVersion: '2014-10-01'});
    

    Bạn cũng có thể đặt các giá trị cấu hình cụ thể cho một dịch vụ khi định cấu hình SDK bằng AWS.Config. Đối tượng cấu hình toàn cầu hỗ trợ nhiều tùy chọn cấu hình dành riêng cho dịch vụ. Để biết thêm thông tin về cấu hình dành riêng cho dịch vụ, hãy xem Lớp. AWS. Cấu hình trong SDK AWS để tham khảo API JavaScript

  • Dữ liệu cấu hình bất biến

    Thay đổi cấu hình chung áp dụng cho các yêu cầu đối với tất cả các đối tượng dịch vụ mới được tạo. Các đối tượng dịch vụ mới được tạo trước tiên được định cấu hình với dữ liệu cấu hình chung hiện tại và sau đó là bất kỳ tùy chọn cấu hình cục bộ nào. Các cập nhật bạn thực hiện cho AWS toàn cầu. đối tượng cấu hình không áp dụng cho các đối tượng dịch vụ đã tạo trước đó

    Các đối tượng dịch vụ hiện tại phải được cập nhật thủ công với dữ liệu cấu hình mới hoặc bạn phải tạo và sử dụng một đối tượng dịch vụ mới có dữ liệu cấu hình mới. Ví dụ sau tạo một đối tượng dịch vụ Amazon S3 mới với dữ liệu cấu hình mới

    s3 = new AWS.S3(s3.config);
    

  • Đặt Vùng AWS

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/setting-region. html

    Khu vực là một tập hợp các tài nguyên AWS được đặt tên trong cùng một khu vực địa lý. Một ví dụ về Khu vực là 'us-east-1', là Miền Đông Hoa Kỳ (N. Vùng Virginia). Bạn chỉ định Khu vực khi định cấu hình SDK cho JavaScript để SDK truy cập tài nguyên trong Khu vực đó. Một số dịch vụ chỉ khả dụng ở các Khu vực cụ thể

    SDK cho JavaScript không chọn Khu vực theo mặc định. Tuy nhiên, bạn có thể đặt Vùng bằng cách sử dụng biến môi trường, tệp cấu hình được chia sẻ hoặc đối tượng cấu hình chung

    • Trong Trình xây dựng lớp khách hàng

      Khi bạn khởi tạo một đối tượng dịch vụ, bạn có thể chỉ định Vùng cho tài nguyên đó như một phần của hàm tạo lớp máy khách, như minh họa ở đây

      var s3 = new AWS.S3({apiVersion: '2006-03-01', region: 'us-west-2'});
      

    • Sử dụng đối tượng cấu hình toàn cầu

      Để đặt Khu vực trong mã JavaScript của bạn, hãy cập nhật đối tượng cấu hình chung của AWS.Config như được hiển thị tại đây

      AWS.config.update({region: 'us-east-1'});
      

    • Sử dụng biến môi trường

      Bạn có thể đặt Vùng bằng cách sử dụng biến môi trường ‘AWS_REGION’. Nếu bạn xác định biến này, SDK dành cho JavaScript sẽ đọc và sử dụng biến đó

    • Thứ tự ưu tiên để đặt vùng

      Thứ tự ưu tiên cho cài đặt Khu vực như sau

      • Nếu một Vùng được truyền cho một hàm tạo của lớp máy khách, thì Vùng đó được sử dụng. Nếu không thì…
      • Nếu một Vùng được đặt trên đối tượng cấu hình chung, thì Vùng đó được sử dụng. Nếu không thì…
      • Nếu biến môi trường 'AWS_REGION' là giá trị trung thực, thì Khu vực đó được sử dụng. Nếu không thì…
      • Nếu biến môi trường 'AMAZON_REGION' là giá trị trung thực, thì Vùng đó được sử dụng. Nếu không thì…
      • Nếu biến môi trường ‘AWS_SDK_LOAD_CONFIG’ được đặt thành giá trị trung thực và tệp thông tin đăng nhập được chia sẻ (‘~/. aws/credentials’ hoặc đường dẫn được chỉ định bởi ‘AWS_SHARED_CREDENTIALS_FILE’) chứa Khu vực cho cấu hình đã định cấu hình, Khu vực đó được sử dụng. Nếu không thì…
      • Nếu biến môi trường ‘AWS_SDK_LOAD_CONFIG’ được đặt thành giá trị trung thực và tệp cấu hình (‘~/. aws/config’ hoặc đường dẫn được chỉ định bởi ‘AWS_CONFIG_FILE’) chứa Khu vực cho cấu hình đã định cấu hình, Khu vực đó được sử dụng
  • Chỉ định điểm cuối tùy chỉnh

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/specifying-endpoints. html

    Lệnh gọi các phương thức API trong SDK dành cho JavaScript được thực hiện cho các URI điểm cuối dịch vụ. Theo mặc định, các điểm cuối này được tạo từ Khu vực bạn đã định cấu hình cho mã của mình. Tuy nhiên, có những trường hợp bạn cần chỉ định điểm cuối tùy chỉnh cho các lệnh gọi API của mình

  • Nhận thông tin xác thực của bạn

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/getting-your-credentials. html

    Khi bạn tạo tài khoản AWS, tài khoản của bạn được cung cấp thông tin đăng nhập gốc. Những thông tin đăng nhập đó bao gồm hai khóa truy cập

    • ID khóa truy cập
    • Khóa truy cập bí mật

    Để biết thêm thông tin về các khóa truy cập của bạn, hãy xem Hiểu và lấy thông tin xác thực bảo mật của bạn trong Tài liệu tham khảo chung về AWS

    Khóa truy cập bao gồm ID khóa truy cập và khóa truy cập bí mật, được dùng để ký các yêu cầu có lập trình mà bạn thực hiện với AWS. Nếu không có khóa truy cập, bạn có thể tạo khóa từ Bảng điều khiển quản lý AWS. Tốt nhất là không sử dụng khóa truy cập người dùng gốc của tài khoản AWS cho bất kỳ tác vụ nào không bắt buộc. Thay vào đó, hãy tạo một người dùng IAM quản trị viên mới với các khóa truy cập cho chính bạn

    Để tạo khóa truy cập cho người dùng IAM

    1. Bảng điều khiển quản lý AWS
    2. người dùng
    3. Chọn Người dùng;
    4. Phần phím truy cập;
    5. Chọn Hiển thị
    6. Chọn Tải xuống. tệp csv
    7. Chọn Đóng
  • Đặt thông tin xác thực

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/setting-credentials. html

    AWS sử dụng thông tin đăng nhập để xác định ai đang gọi dịch vụ và liệu quyền truy cập vào các tài nguyên được yêu cầu có được phép hay không. Trong AWS, những thông tin đăng nhập này thường là ID khóa truy cập và khóa truy cập bí mật được tạo cùng với tài khoản của bạn

    Cho dù chạy trong trình duyệt web hay trong Nút. js, mã JavaScript của bạn phải có thông tin đăng nhập hợp lệ trước khi có thể truy cập các dịch vụ thông qua API. Thông tin đăng nhập có thể được đặt trên toàn cầu trên đối tượng cấu hình, sử dụng AWS.Config hoặc trên mỗi dịch vụ bằng cách chuyển thông tin đăng nhập trực tiếp đến đối tượng dịch vụ

    Có một số cách để đặt thông tin xác thực khác nhau giữa các Nút. js và JavaScript trong trình duyệt web. Các chủ đề trong phần này mô tả cách đặt thông tin xác thực trong Node. js hoặc trình duyệt web. Trong mỗi trường hợp, các tùy chọn được trình bày theo thứ tự khuyến nghị

    Thực tiễn tốt nhất cho thông tin xác thực

    Đặt đúng thông tin xác thực đảm bảo rằng ứng dụng hoặc tập lệnh trình duyệt của bạn có thể truy cập các dịch vụ và tài nguyên cần thiết đồng thời giảm thiểu khả năng gặp phải các sự cố bảo mật có thể ảnh hưởng đến các ứng dụng quan trọng hoặc xâm phạm dữ liệu nhạy cảm

    Một nguyên tắc quan trọng cần áp dụng khi đặt thông tin đăng nhập là luôn cấp đặc quyền tối thiểu cần thiết cho nhiệm vụ của bạn. Sẽ an toàn hơn khi cung cấp các quyền tối thiểu đối với tài nguyên của bạn và thêm các quyền khác nếu cần, thay vì cung cấp các quyền vượt quá đặc quyền tối thiểu và do đó, được yêu cầu khắc phục các sự cố bảo mật mà bạn có thể phát hiện ra sau này. Ví dụ: trừ khi bạn có nhu cầu đọc và ghi các tài nguyên riêng lẻ, chẳng hạn như các đối tượng trong bộ chứa Amazon S3 hoặc bảng DynamoDB, hãy đặt các quyền đó thành chỉ đọc

    Để biết thêm thông tin về việc cấp đặc quyền tối thiểu, hãy xem phần Cấp đặc quyền tối thiểu của chủ đề Các phương pháp hay nhất trong Hướng dẫn sử dụng IAM

    Để biết thêm thông tin về cách quản lý khóa truy cập của bạn, hãy xem Các phương pháp hay nhất để quản lý khóa truy cập AWS trong Tài liệu tham khảo chung về AWS

  • Đặt thông tin xác thực trong nút. js

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/setting-credentials-node. html

    Có một số cách trong Node. js để cung cấp thông tin đăng nhập của bạn cho SDK. Một số trong số này an toàn hơn và một số khác mang lại sự thuận tiện hơn trong khi phát triển ứng dụng. Khi lấy thông tin đăng nhập trong Node. js, hãy cẩn thận khi dựa vào nhiều nguồn, chẳng hạn như biến môi trường và tệp JSON bạn tải. Bạn có thể thay đổi các quyền mà mã của bạn chạy theo đó mà không nhận ra sự thay đổi đã xảy ra

    Dưới đây là những cách bạn có thể cung cấp thông tin đăng nhập của mình theo thứ tự đề xuất

    1. Đã tải từ các vai trò AWS Identity and Access Management (IAM) cho Amazon EC2
    2. Được tải từ tệp thông tin đăng nhập được chia sẻ (‘~/. aws/thông tin xác thực')
    3. Được tải từ các biến môi trường
    4. Được tải từ một tệp JSON trên đĩa
    5. Các lớp trình cung cấp thông tin xác thực khác do SDK JavaScript cung cấp

    Nếu có nhiều hơn một nguồn thông tin xác thực cho SDK, thứ tự ưu tiên lựa chọn mặc định như sau

    1. Thông tin đăng nhập được đặt rõ ràng thông qua hàm tạo dịch vụ-máy khách
    2. Biến môi trường
    3. Tệp thông tin đăng nhập được chia sẻ
    4. Thông tin đăng nhập được tải từ nhà cung cấp thông tin đăng nhập ECS (nếu có)
    5. Thông tin xác thực có được bằng cách sử dụng quy trình xác thực được chỉ định trong tệp cấu hình AWS được chia sẻ hoặc tệp thông tin đăng nhập được chia sẻ. Để biết thêm thông tin, hãy xem Tải thông tin xác thực trong nút. js bằng Quy trình xác thực đã định cấu hình
    6. Thông tin đăng nhập được tải từ AWS IAM bằng cách sử dụng nhà cung cấp thông tin xác thực của phiên bản Amazon EC2 (nếu được định cấu hình trong siêu dữ liệu phiên bản)

    Các chủ đề trong phần này mô tả cách tải thông tin xác thực vào Node. js

    • Đang tải thông tin xác thực trong nút. js từ Vai trò IAM cho EC2
    • Đang tải thông tin xác thực cho một nút. Hàm Lambda js
    • Đang tải thông tin xác thực trong nút. js từ Biến môi trường

      https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment. html

      SDK tự động phát hiện thông tin đăng nhập AWS được đặt làm biến trong môi trường của bạn và sử dụng chúng cho các yêu cầu SDK, loại bỏ nhu cầu quản lý thông tin đăng nhập trong ứng dụng của bạn. Các biến môi trường mà bạn đặt để cung cấp thông tin đăng nhập của mình là

      • 'AWS_ACCESS_KEY_ID'
      • 'AWS_SECRET_ACCESS_KEY'
      • ‘AWS_SESSION_TOKEN’ (tùy chọn)
    • Đang tải thông tin xác thực trong nút. js từ Tệp JSON

      https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-json-file. html

      Bạn có thể tải cấu hình và thông tin đăng nhập từ tài liệu JSON trên đĩa bằng cách sử dụng

      s3 = new AWS.S3(s3.config);
      
      3. Đường dẫn được chỉ định có liên quan đến thư mục làm việc hiện tại của quy trình của bạn. Ví dụ: để tải thông tin xác thực từ tệp
      s3 = new AWS.S3(s3.config);
      
      4 có nội dung sau

      { "accessKeyId": , "secretAccessKey": , "region": "us-east-1" }
      

      Sử dụng lệnh sau

      AWS.config.loadFromPath('./config.json');
      

      Tải thông tin đăng nhập từ tài liệu JSON không được hỗ trợ trong tập lệnh trình duyệt

    • Đang tải thông tin xác thực trong nút. js bằng Quy trình xác thực đã định cấu hình

      https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-configured-credential-process. html

      Bạn có thể lấy thông tin đăng nhập bằng cách sử dụng một phương pháp không được tích hợp trong SDK. Để thực hiện việc này, hãy chỉ định một quy trình xác thực trong tệp cấu hình AWS được chia sẻ hoặc tệp thông tin xác thực được chia sẻ. Nếu biến môi trường AWS_SDK_LOAD_CONFIG được đặt thành giá trị trung thực, thì SDK sẽ ưu tiên quy trình được chỉ định trong tệp cấu hình hơn quy trình được chỉ định trong tệp thông tin xác thực (nếu có)

  • Đặt thông tin xác thực trong trình duyệt web

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/setting-credentials-browser. html

    Có một số cách để cung cấp thông tin đăng nhập của bạn cho SDK từ tập lệnh trình duyệt. Một số trong số này an toàn hơn và một số khác mang lại sự thuận tiện hơn trong khi phát triển tập lệnh. Dưới đây là những cách bạn có thể cung cấp thông tin đăng nhập của mình theo thứ tự đề xuất

    1. Sử dụng Amazon Cognito Identity để xác thực người dùng và cung cấp thông tin xác thực
    2. Sử dụng danh tính được liên kết trên web
    3. Mã hóa cứng trong tập lệnh 1
  • Khóa phiên bản API

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/locking-api-versions. html

  • Nút. cân nhắc js

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/node-js-considerations. html

    Mặc dù nút. js là JavaScript, sử dụng AWS SDK cho JavaScript trong Node. js có thể khác với việc sử dụng SDK trong tập lệnh trình duyệt. Một số phương thức API hoạt động trong Node. js nhưng không có trong tập lệnh trình duyệt, cũng như ngược lại. Và việc sử dụng thành công một số API phụ thuộc vào mức độ quen thuộc của bạn với Node thông thường. js, chẳng hạn như nhập và sử dụng Node khác. js như mô-đun Hệ thống tệp (fs)

    • Sử dụng các Mô-đun Node-js tích hợp
    • Sử dụng gói NPM
    • Định cấu hình maxSockets trong Node-js
    • Sử dụng lại các kết nối với Keep-Alive trong Node-js
    • Định cấu hình Proxy cho Node-js
    • Đăng ký gói chứng chỉ trong nút. js
  • Cân nhắc tập lệnh trình duyệt

    https. // tài liệu. aws. amazon. com/sdk-for-javascript/v2/developer-guide/browser-js-considerations. html

    Các chủ đề sau mô tả những cân nhắc đặc biệt khi sử dụng AWS SDK dành cho JavaScript trong tập lệnh trình duyệt

    Làm cách nào để sử dụng S3 với NodeJS?

    Làm cách nào để sử dụng Bộ chứa AWS S3 với Ứng dụng NodeJS? .
    Bước 1. Nhận khóa thông tin xác thực của bạn
    Bước 2. Tạo một nhóm
    Bước 3. Triển khai trong dự án nodeJs. Tải đối tượng/tệp lên thùng. Truy cập hoặc tải xuống đối tượng/tệp từ thùng. Xóa đối tượng/tệp khỏi thùng

    Tôi có thể chạy NodeJS trên S3 không?

    Ghi chú. Điều quan trọng là phải hiểu rằng bạn không thể chạy NodeJS trong S3 và thay vào đó, bạn sẽ sử dụng dịch vụ lưu trữ web nội bộ từ S3 để phục vụ nội dung tĩnh.

    Làm cách nào để định cấu hình thông tin đăng nhập AWS trong NodeJS?

    Đặt thông tin xác thực trong nút. .
    Đã tải từ các vai trò AWS Identity and Access Management (IAM) cho Amazon EC2
    Được tải từ tệp thông tin đăng nhập được chia sẻ ( ~/. aws/thông tin xác thực )
    Được tải từ các biến môi trường
    Được tải từ một tệp JSON trên đĩa
    Các lớp trình cung cấp thông tin xác thực khác do SDK JavaScript cung cấp

    Làm cách nào để định cấu hình AWS SDK trong NodeJS?

    Bước 1. Cài đặt SDK và phụ thuộc. Bạn cài đặt SDK cho gói JavaScript bằng cách sử dụng npm (Nút. .
    Bước 2. Định cấu hình thông tin xác thực của bạn. .
    Bước 3. Tạo Gói JSON cho Dự án. .
    Bước 4. Viết nút. .
    Bước 5. Chạy mẫu