Javascript tính lương làm thêm giờ

Cập nhật mọi thông tin được công bố tại Hội nghị thượng đỉnh Firebase và tìm hiểu cách Firebase có thể giúp bạn đẩy nhanh quá trình phát triển ứng dụng cũng như tự tin chạy ứng dụng của mình. Tìm hiểu thêm

  • căn cứ hỏa lực
  • Tài liệu
  • Chức năng đám mây
  • Xây dựng

Gửi phản hồiQuản lý các chức năng Sắp xếp ngăn nắp với các bộ sưu tập Lưu và phân loại nội dung dựa trên sở thích của bạn

Bạn có thể triển khai, xóa và sửa đổi các chức năng bằng các lệnh Firebase CLI hoặc bằng cách đặt các tùy chọn thời gian chạy trong mã nguồn chức năng của bạn

Triển khai chức năng

Để triển khai các chức năng, hãy chạy lệnh Firebase CLI này

firebase deploy --only functions

Theo mặc định, Firebase CLI triển khai tất cả các chức năng bên trong

firebase deploy --only functions:addMessage,functions:makeUppercase
9 cùng một lúc. Nếu dự án của bạn chứa nhiều hơn 5 chức năng, chúng tôi khuyên bạn nên sử dụng cờ
# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
0 với các tên chức năng cụ thể để chỉ triển khai các chức năng mà bạn đã chỉnh sửa. cách này tăng tốc quá trình triển khai và giúp bạn tránh chạy vào hạn ngạch triển khai. Ví dụ

firebase deploy --only functions:addMessage,functions:makeUppercase

Khi triển khai một số lượng lớn chức năng, bạn có thể vượt quá hạn ngạch tiêu chuẩn và nhận được thông báo lỗi HTTP 429 hoặc 500. Để giải quyết vấn đề này, hãy triển khai các chức năng theo nhóm từ 10 người trở xuống

Xem tài liệu tham khảo Firebase CLI để biết danh sách đầy đủ các lệnh có sẵn

Thận trọng. Các chức năng có thể gọi HTTP và HTTP mới được triển khai với bất kỳ CLI Firebase nào thấp hơn phiên bản 7. 7. 0 ở chế độ riêng tư theo mặc định và gây ra lỗi HTTP 403 khi được gọi. Rõ ràng hoặc trước khi bạn triển khai bất kỳ chức năng mới nào.

Theo mặc định, Firebase CLI tìm mã nguồn trong thư mục

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
1. Nếu muốn, bạn có thể tổ chức các chức năng trong cơ sở mã hoặc nhiều bộ tệp

Xóa chức năng

Bạn có thể xóa các chức năng đã triển khai trước đây theo các cách này

  • rõ ràng trong Firebase CLI với
    # Delete all functions that match the specified name in all regions.
    firebase functions:delete myFunction
    
    2
  • rõ ràng trong Google Cloud Console
  • hoàn toàn bằng cách xóa chức năng khỏi ________ 19 trước khi triển khai

Tất cả các thao tác xóa sẽ nhắc bạn xác nhận trước khi xóa chức năng khỏi sản xuất

Xóa chức năng rõ ràng trong Firebase CLI hỗ trợ nhiều đối số cũng như các nhóm chức năng và cho phép bạn chỉ định một chức năng đang chạy trong một vùng cụ thể. Ngoài ra, bạn có thể ghi đè lời nhắc xác nhận

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
firebase deploy --only functions:addMessage,functions:makeUppercase
0
firebase deploy --only functions:addMessage,functions:makeUppercase
1

Với việc xóa chức năng ẩn,

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
4 phân tích cú pháp
firebase deploy --only functions:addMessage,functions:makeUppercase
9 và xóa khỏi sản xuất bất kỳ chức năng nào đã bị xóa khỏi tệp

Sửa đổi tên, vùng hoặc trình kích hoạt của chức năng

Nếu bạn đang đổi tên hoặc thay đổi vùng hoặc trình kích hoạt cho các chức năng đang xử lý lưu lượng sản xuất, hãy làm theo các bước trong phần này để tránh mất sự kiện trong quá trình sửa đổi. Trước khi bạn làm theo các bước này, trước tiên hãy đảm bảo rằng chức năng của bạn là , vì cả phiên bản mới và phiên bản cũ của chức năng của bạn sẽ chạy cùng lúc trong quá trình thay đổi

Đổi tên một chức năng

Để đổi tên một chức năng, hãy tạo một phiên bản mới được đổi tên của chức năng trong

firebase deploy --only functions:addMessage,functions:makeUppercase
9, sau đó chạy hai lệnh triển khai riêng biệt. Lệnh đầu tiên triển khai chức năng mới được đặt tên và lệnh thứ hai xóa phiên bản đã triển khai trước đó. Ví dụ: nếu bạn có một hàm tên là
# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
7 mà bạn muốn thay đổi thành
# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
8, hãy sửa lại mã như sau

firebase deploy --only functions:addMessage,functions:makeUppercase
7

Sau đó chạy các lệnh sau để triển khai chức năng mới

firebase deploy --only functions:addMessage,functions:makeUppercase
8

Thay đổi vùng hoặc vùng của chức năng

Nếu bạn đang thay đổi các vùng được chỉ định cho một chức năng đang xử lý lưu lượng sản xuất, bạn có thể tránh mất sự kiện bằng cách thực hiện các bước này theo thứ tự

  1. Đổi tên chức năng và thay đổi vùng hoặc vùng của nó theo ý muốn
  2. Triển khai chức năng đã đổi tên, dẫn đến việc tạm thời chạy cùng một mã trong cả hai nhóm vùng
  3. Xóa chức năng trước đó

Ví dụ: nếu bạn có một hàm tên là

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
7 hiện nằm trong vùng hàm mặc định là
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
0 và bạn muốn di chuyển hàm đó sang
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
1, trước tiên bạn cần sửa đổi mã nguồn của mình để đổi tên hàm và sửa đổi vùng

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
2

Sau đó triển khai bằng cách chạy

firebase deploy --only functions:addMessage,functions:makeUppercase
0

Bây giờ có hai chức năng giống hệt nhau đang chạy.

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
7 đang chạy trong
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
0 và
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
4 đang chạy trong
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
1

Sau đó, xóa

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
7

firebase deploy --only functions:addMessage,functions:makeUppercase
1

Bây giờ chỉ có một chức năng -

# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
4, đang chạy trong
# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
1

Thay đổi loại trình kích hoạt của chức năng

Khi phát triển Chức năng đám mây để triển khai Firebase theo thời gian, bạn có thể cần phải thay đổi loại trình kích hoạt của chức năng vì nhiều lý do. Ví dụ: bạn có thể muốn thay đổi từ một loại Cơ sở dữ liệu thời gian thực Firebase hoặc sự kiện Cloud Firestore sang một loại khác, chẳng hạn như sự kiện

# Delete a specified function running in a specific region.
firebase functions:delete myFunction --region us-east-1
9 chung thành sự kiện
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
0 chi tiết hơn

Không thể thay đổi loại sự kiện của chức năng chỉ bằng cách thay đổi mã nguồn và chạy

# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
4. Để tránh lỗi, hãy thay đổi loại trình kích hoạt của chức năng theo quy trình này

  1. Sửa đổi mã nguồn để bao gồm một chức năng mới với loại trình kích hoạt mong muốn
  2. Triển khai chức năng dẫn đến việc chạy tạm thời cả chức năng cũ và chức năng mới
  3. Xóa hoàn toàn chức năng cũ khỏi sản xuất bằng Firebase CLI

Ví dụ: nếu bạn có một hàm

# Delete more than one function
firebase functions:delete myFunction myOtherFunction
2 có loại sự kiện kế thừa
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
3 và bạn muốn thay đổi nó thành
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
4, trước tiên hãy đổi tên hàm và chỉnh sửa để có loại sự kiện
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
4

firebase deploy --only functions:addMessage,functions:makeUppercase
2

Sau đó chạy các lệnh sau để tạo chức năng mới trước, trước khi xóa chức năng cũ

firebase deploy --only functions:addMessage,functions:makeUppercase
3

Đặt tùy chọn thời gian chạy

Chức năng đám mây cho Firebase cho phép bạn chọn các tùy chọn thời gian chạy, chẳng hạn như Nút. phiên bản thời gian chạy js và thời gian chờ cho mỗi chức năng, cấp phát bộ nhớ và các phiên bản chức năng tối thiểu/tối đa

Như một phương pháp hay nhất, các tùy chọn này (ngoại trừ Node. js) phải được đặt trên một đối tượng cấu hình bên trong mã chức năng. Đối tượng

# Delete more than one function
firebase functions:delete myFunction myOtherFunction
6 này là nguồn trung thực cho các tùy chọn thời gian chạy của chức năng của bạn và sẽ ghi đè các tùy chọn được đặt qua bất kỳ phương thức nào khác (chẳng hạn như qua bảng điều khiển Google Cloud hoặc gcloud CLI)

Nếu quy trình phát triển của bạn liên quan đến việc đặt tùy chọn thời gian chạy theo cách thủ công thông qua Google Cloud console hoặc gcloud CLI và bạn không muốn các giá trị này bị ghi đè trên mỗi lần triển khai, hãy đặt tùy chọn

# Delete more than one function
firebase functions:delete myFunction myOtherFunction
7 thành
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
8. Với tùy chọn này được đặt thành
# Delete more than one function
firebase functions:delete myFunction myOtherFunction
8, Firebase sẽ hợp nhất các tùy chọn thời gian chạy được đặt trong mã của bạn với các cài đặt của phiên bản chức năng hiện đang được triển khai của bạn với mức độ ưu tiên sau

  1. Tùy chọn được đặt trong mã chức năng. ghi đè các thay đổi bên ngoài
  2. Tùy chọn được đặt thành
    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    00 trong mã chức năng. ghi đè các thay đổi bên ngoài bằng giá trị mặc định
  3. Tùy chọn không được đặt trong mã chức năng, nhưng được đặt trong chức năng hiện đang được triển khai. sử dụng tùy chọn được chỉ định trong chức năng đã triển khai

Việc sử dụng tùy chọn

firebase deploy --only functions:addMessage,functions:makeUppercase
01 không được khuyến nghị cho hầu hết các trường hợp vì mã của bạn sẽ không còn là nguồn chính xác đầy đủ cho các tùy chọn thời gian chạy cho các chức năng của bạn. Nếu bạn sử dụng nó, hãy kiểm tra bảng điều khiển Google Cloud hoặc sử dụng gcloud CLI để xem cấu hình đầy đủ của chức năng

Đặt nút. phiên bản js

SDK Firebase cho Chức năng đám mây 2. 0. 0 trở lên cho phép lựa chọn Nút. thời gian chạy js. Bạn có thể chọn chạy tất cả các chức năng trong một dự án riêng trên môi trường thời gian chạy tương ứng với một trong các Nút được hỗ trợ này. phiên bản js

  • Nút. js 18
  • Nút. js 16
  • Nút. js 14

Để đặt Nút. phiên bản js

Đặt phiên bản trong trường

firebase deploy --only functions:addMessage,functions:makeUppercase
02 trong tệp
firebase deploy --only functions:addMessage,functions:makeUppercase
03 đã được tạo trong thư mục
# Delete all functions that match the specified name in all regions.
firebase functions:delete myFunction
1 của bạn trong quá trình khởi tạo. Ví dụ: để chỉ sử dụng phiên bản 18, hãy chỉnh sửa dòng này trong
firebase deploy --only functions:addMessage,functions:makeUppercase
03

firebase deploy --only functions:addMessage,functions:makeUppercase
4

Trường

firebase deploy --only functions:addMessage,functions:makeUppercase
02 là bắt buộc; . js để bạn triển khai và chạy các chức năng

Nâng cấp nút của bạn. thời gian chạy js

Để nâng cấp Nút của bạn. thời gian chạy js

  1. Đảm bảo dự án của bạn nằm trong gói định giá Blaze
  2. Đảm bảo bạn đang sử dụng Firebase CLI v9. 17. 0 trở lên
  3. Thay đổi giá trị
    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    02 trong tệp
    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    03 đã được tạo trong thư mục
    # Delete all functions that match the specified name in all regions.
    firebase functions:delete myFunction
    
    1 của bạn trong quá trình khởi tạo. Ví dụ: nếu bạn đang nâng cấp từ phiên bản 16 lên phiên bản 18, mục nhập sẽ có dạng như sau.
    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    10
  4. Theo tùy chọn, hãy kiểm tra các thay đổi của bạn bằng Bộ giả lập cục bộ Firebase
  5. Triển khai lại các chức năng bằng Firebase CLI v11. 18. 0 trở lên

Kiểm soát hành vi mở rộng quy mô

Theo mặc định, Chức năng đám mây cho Firebase chia tỷ lệ số lượng phiên bản đang chạy dựa trên số lượng yêu cầu đến, có khả năng giảm quy mô xuống 0 phiên bản trong thời gian lưu lượng truy cập giảm. Tuy nhiên, nếu ứng dụng của bạn yêu cầu giảm độ trễ và bạn muốn giới hạn số lần khởi động nguội, thì bạn có thể thay đổi hành vi mặc định này bằng cách chỉ định số phiên bản vùng chứa tối thiểu được giữ ấm và sẵn sàng phân phát yêu cầu

Tương tự, bạn có thể đặt số lượng tối đa để giới hạn quy mô phiên bản theo các yêu cầu gửi đến. Sử dụng cài đặt này như một cách để kiểm soát chi phí của bạn hoặc để giới hạn số lượng kết nối tới dịch vụ hỗ trợ, chẳng hạn như tới cơ sở dữ liệu

Giảm số lần khởi động lạnh

Để đặt số lượng phiên bản tối thiểu cho một hàm trong mã nguồn, hãy sử dụng phương thức. Phương thức này chấp nhận một đối tượng JSON phù hợp với giao diện, xác định giá trị cho

firebase deploy --only functions:addMessage,functions:makeUppercase
13. Ví dụ: chức năng này đặt tối thiểu 5 lần giữ ấm

______15Lưu ý. Số lượng phiên bản tối thiểu tiếp tục chạy phát sinh chi phí thanh toán ở mức nhàn rỗi. Thông thường, để giữ ấm cho một phiên bản chức năng không hoạt động, chi phí dưới 6 đô la. 00 một tháng. Firebase CLI cung cấp ước tính chi phí tại thời điểm triển khai cho các chức năng có phiên bản tối thiểu dự trữ. Tham khảo Giá chức năng đám mây để tính toán chi phí.

Dưới đây là một số điều cần cân nhắc khi đặt giá trị cho

firebase deploy --only functions:addMessage,functions:makeUppercase
13

  • Nếu Chức năng đám mây cho Firebase thay đổi quy mô ứng dụng của bạn trên cài đặt
    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    13, thì bạn sẽ gặp phải tình trạng khởi động không ổn định cho từng phiên bản vượt quá ngưỡng đó
  • Bắt đầu nguội lạnh có ảnh hưởng nghiêm trọng nhất đến các ứng dụng có lưu lượng truy cập tăng đột biến. Nếu ứng dụng của bạn có lưu lượng truy cập tăng đột biến và bạn đặt giá trị
    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    13 đủ cao để giảm thời gian khởi động nguội trên mỗi lần tăng lưu lượng truy cập, thì bạn sẽ thấy độ trễ giảm đáng kể. Đối với các ứng dụng có lưu lượng truy cập liên tục, khởi động nguội không có khả năng ảnh hưởng nghiêm trọng đến hiệu suất
  • Đặt phiên bản tối thiểu có thể có ý nghĩa đối với môi trường sản xuất, nhưng thường nên tránh trong môi trường thử nghiệm. Để mở rộng quy mô về 0 trong dự án thử nghiệm của bạn nhưng vẫn giảm thời gian bắt đầu nguội trong dự án sản xuất của bạn, bạn có thể đặt

    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    13 dựa trên biến môi trường
    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    18

    firebase deploy --only functions:addMessage,functions:makeUppercase
    
    6

Giới hạn số lượng phiên bản tối đa cho một chức năng

Để đặt các phiên bản tối đa trong mã nguồn chức năng, hãy sử dụng phương thức. Phương thức này chấp nhận một đối tượng JSON phù hợp với giao diện, xác định các giá trị cho

firebase deploy --only functions:addMessage,functions:makeUppercase
71. Ví dụ: chức năng này đặt giới hạn 100 phiên bản để không áp đảo cơ sở dữ liệu kế thừa giả định

firebase deploy --only functions:addMessage,functions:makeUppercase
7

Nếu chức năng HTTP được mở rộng đến giới hạn

firebase deploy --only functions:addMessage,functions:makeUppercase
71, các yêu cầu mới sẽ được xếp hàng trong 30 giây và sau đó bị từ chối với mã phản hồi là
firebase deploy --only functions:addMessage,functions:makeUppercase
73 nếu không có phiên bản nào khả dụng trước đó

Để tìm hiểu thêm về các phương pháp hay nhất để sử dụng cài đặt phiên bản tối đa, hãy xem các

Đặt thời gian chờ và cấp phát bộ nhớ

Trong một số trường hợp, các chức năng của bạn có thể có các yêu cầu đặc biệt đối với giá trị thời gian chờ lâu hoặc phân bổ bộ nhớ lớn. Bạn có thể đặt các giá trị này trong Google Cloud Console hoặc trong mã nguồn chức năng (chỉ dành cho Firebase)

Để đặt thời gian chờ và phân bổ bộ nhớ trong mã nguồn chức năng, hãy sử dụng tham số được giới thiệu trong SDK Firebase cho Chức năng đám mây 2. 0. 0. Tùy chọn thời gian chạy này chấp nhận một đối tượng JSON phù hợp với giao diện

# Delete more than one function
firebase functions:delete myFunction myOtherFunction
6, giao diện này xác định các giá trị cho
firebase deploy --only functions:addMessage,functions:makeUppercase
77 và
firebase deploy --only functions:addMessage,functions:makeUppercase
78. Ví dụ: chức năng lưu trữ này sử dụng bộ nhớ 1GB và hết sau 300 giây

firebase deploy --only functions:addMessage,functions:makeUppercase
8

Giá trị tối đa cho

firebase deploy --only functions:addMessage,functions:makeUppercase
77 là
firebase deploy --only functions:addMessage,functions:makeUppercase
80 hoặc 9 phút. Dung lượng bộ nhớ được cấp cho một chức năng tương ứng với CPU được cấp cho chức năng đó, như được trình bày chi tiết trong danh sách các giá trị hợp lệ này cho
firebase deploy --only functions:addMessage,functions:makeUppercase
78