Chúng tôi sẽ ngừng cung cấp API Tại chỗ. Hãy tham khảo tài liệu về việc Ngừng cung cấp API Tại chỗ để biết chi tiết, đồng thời tìm hiểu cách chuyển sang API Đám mây thế hệ tiếp theo của chúng tôi.
Tài liệu này hướng dẫn bạn cách sử dụng Amazon Web Services (AWS) để triển khai API WhatsApp Business. Quy trình này được chia làm 2 bước chính:
Sau khi hoàn tất quy trình thiết lập, bạn có thể chọn nâng cấp ứng dụng. Nếu bạn cần khởi động lại cả Webapp và CoreApp, hãy làm theo các bước sau.
Trong tài liệu này, bạn sẽ tìm hiểu về mẫu AWS mới mà chúng tôi đã thử nghiệm để đạt được thông lượng nhắn tin cao hơn và ổn định hơn. Nếu bạn đang tìm kiếm mẫu AWS cũ hơn, hãy xem phần Kho lưu trữ AWS.
Trước khi bắt đầu, bạn sẽ cần:
Bạn cần thiết lập tài khoản AWS hợp lệ và làm quen với cách làm việc trên AWS. WhatsApp cung cấp các mẫu CloudFormation giúp dễ dàng triển khai ứng dụng API WhatsApp Business. Hãy tham khảo Trung tâm nguồn lực về cách bắt đầu với AWS để biết thêm thông tin.
Bạn cần tạo một cặp khóa mới để truy cập vào phiên bản EC2 mà mẫu WhatsApp Business API tạo ra. Bạn cũng có thể sử dụng một cặp khóa mà bạn đã tạo trước đây. Hãy tham khảo tài liệu về Cặp khóa Amazon EC2 để biết thông tin về cách tạo và sử dụng cặp khóa với một phiên bản EC2.
Bạn cần sử dụng khu vực mình đang triển khai API WhatsApp Business để tạo cặp khóa.
Ứng dụng API WhatsApp Business tận dụng hình ảnh CentOS 9 (có trong AWS Marketplace). Bạn phải xem lại cũng như đồng ý với các điều khoản và điều kiện trước khi sử dụng mẫu. Bạn sẽ không tạo được mẫu nếu không chấp nhận các điều khoản.
Cách xem lại và chấp nhận hình ảnh CentOS 9 AMI:
Mẫu WhatsApp Business API sử dụng loại tài nguyên EFS mà không phải khu vực AWS nào cũng sử dụng được. Do đó, chúng tôi chỉ hỗ trợ những khu vực sau:
Căn cứ vào thử nghiệm ban đầu, WhatsApp sẽ xác định xem chúng tôi có thể cung cấp tùy chọn thay thế sử dụng được ở tất cả các khu vực hay không.
Không, chúng tôi không hỗ trợ KOPS. Chúng tôi hỗ trợ giải pháp AWS dựa trên ECS. Ngoài ra, chúng tôi còn cung cấp tài liệu hướng dẫn chung về cách thiết lập Kubernetes bằng minikube.
Mạng Virtual Private Cloud (VPC) thường được tạo khi bạn đăng ký tài khoản AWS. Ngoài ra, có thể có một số tùy chỉnh và hạn chế kiểm soát quyền truy cập bắt buộc dành riêng cho doanh nghiệp.
Nếu cơ sở hạ tầng mạng VPC đã được tạo, thì bạn có thể bỏ qua bước này. Nếu không, bạn có thể dùng mẫu dưới đây để tạo cơ sở hạ tầng mạng trên AWS.
Mẫu mạng được cung cấp chỉ cho mục đích tham khảo. Bạn có thể sửa đổi mẫu cho phù hợp với nhu cầu cụ thể của mình.
Cách triển khai mẫu mạng:
Tên | Mô tả |
---|---|
| Bắt buộc. Tên của ngăn xếp cần tạo. |
Tên | Mô tả |
---|---|
| Bắt buộc. Vùng sẵn sàng (AZ) để tạo VPC. |
| Bắt buộc. Số lượng vùng sẵn sàng đã chọn. |
Tên | Mô tả |
---|---|
| Bắt buộc. Dải địa chỉ IP (CIDR) của VPC này. |
| Bắt buộc. Hình thức thuê VPC |
Tên | Mô tả |
---|---|
| Bắt buộc. Dải địa chỉ IP (CIDR) của mạng con công khai |
| Bắt buộc. Dải địa chỉ IP (CIDR) của mạng con công khai |
| Không bắt buộc. Bắt buộc nếu số lượng vùng sẵn sàng lớn hơn 2. |
| Không bắt buộc. Bắt buộc nếu số lượng vùng sẵn sàng lớn hơn 3. |
Tên | Mô tả |
---|---|
| Bắt buộc. Tùy chọn: |
| Có điều kiện. Bắt buộc nếu quá trình tạo mạng con riêng tư được đặt thành |
| Có điều kiện. Bắt buộc nếu quá trình tạo mạng con riêng tư được đặt thành |
| Có điều kiện. Bắt buộc nếu quá trình tạo mạng con riêng tư được đặt thành |
| Có điều kiện. Bắt buộc nếu quá trình tạo mạng con riêng tư được đặt thành |
Trước khi triển khai ngăn xếp API WhatsApp Business trên AWS, đầu tiên, bạn cần tải file cấu hình của ngăn xếp con được tham chiếu lên vùng lưu trữ S3 mà bạn có quyền đọc.
WhatsApp Enterprise là mẫu chính và tạo tất cả tài nguyên (ngoại trừ mạng) cần thiết cho ứng dụng API WhatsApp Business. Như chúng tôi đã lưu ý ở phần trước, mẫu này cũng tạo tài nguyên cơ sở dữ liệu, nếu cần.
Cách triển khai ứng dụng API WhatsApp Business:
Tên | Mô tả |
---|---|
| Bắt buộc. Tên của ngăn xếp cần tạo. Tên ngăn xếp phải nhỏ hơn hoặc bằng 22 ký tự. Lưu ý: Để triển khai trong các khu vực ap-southeast-1, ap-southeast-2, ap-northeast-1 hoặc ap-northeast-2, tên ngăn xếp phải dùng 8 ký tự trở xuống. Nếu |
Tên | Mô tả |
---|---|
| Không bắt buộc. Bật tính năng Độ sẵn sàng cao. Mặc định: |
| Bắt buộc. Số tin nhắn bạn muốn gửi mỗi giây. Cùng với tùy chọn |
| Bắt buộc. Loại tin nhắn chính mà bạn muốn gửi và nhận. Cùng với tùy chọn |
| Không bắt buộc. Cài đặt node-exporter trên mỗi máy chủ CoreApp để giám sát phiên bản. Mặc định: |
Tên | Mô tả |
---|---|
| Bắt buộc. Tên ngăn xếp CloudFormation mạng được tạo thông qua bước thiết lập mạng. |
| Bắt buộc. Số mạng con đã chọn. Hiện tại, chúng tôi chỉ hỗ trợ 2 mạng con trong quá trình triển khai để phân phối tác vụ ECS đồng đều trên tất cả máy chủ. |
| Bắt buộc. Hiện tại, chúng tôi chỉ hỗ trợ bộ cân bằng tải truy cập từ Internet. Bộ cân bằng tải này sẽ hiển thị công khai. Vui lòng sửa đổi nhóm bảo mật sau khi tạo ngăn xếp API để chặn trường hợp truy cập không cần thiết. |
Tên | Mô tả |
---|---|
| Bắt buộc. Cặp khóa thích hợp để truy cập phiên bản EC2, nếu cần. |
| Không bắt buộc. Cấu hình này nhằm chuẩn bị cho tương lai và hỗ trợ các thử nghiệm trên ứng dụng API WhatsApp Business. Giá trị mặc định nên phù hợp với phần lớn trường hợp. |
| Bắt buộc. Bạn nên sử dụng phiên bản ổn định mới nhất (hãy xem nhật ký thay đổi để biết phiên bản mới nhất). Phiên bản ứng dụng API WhatsApp Business luôn bắt đầu bằng ký tự "v", trừ khi nêu rõ khác. Sử dụng sai phiên bản sẽ khiến bạn không tạo được ngăn xếp. |
| Bắt buộc. Bạn nên chọn 32GB trở lên cho khối lượng công việc chính thức. |
Tên | Mô tả |
---|---|
| Không bắt buộc. Bật tính năng lưu trữ thông tin cấu hình vào cơ sở dữ liệu. |
| Không bắt buộc. Tên máy chủ cơ sở dữ liệu hiện có. |
| Bắt buộc. Tên quản trị viên để truy cập cơ sở dữ liệu này. |
| Bắt buộc. Mật khẩu quản trị viên để truy cập cơ sở dữ liệu này. Mật khẩu cơ sở dữ liệu không được chứa bất kỳ ký tự nào sau đây: ?{}&~!()^/"@ |
| Bắt buộc. Số cổng để truy cập phần phụ trợ cơ sở dữ liệu. |
| Không bắt buộc. Cho biết có duy trì kết nối Cơ sở dữ liệu cho vùng chứa Web hay không. Mặc định: |
| Không bắt buộc. Khoảng thời gian tính bằng mili giây (ms). Sau khoảng thời gian này, cơ sở dữ liệu sẽ đóng các kết nối không hoạt động. |
Tên | Mô tả |
---|---|
| Không bắt buộc. Trình điều khiển ghi nhật ký cho nhật ký vùng chứa. |
| Không bắt buộc. Kích thước tối đa của file nhật ký vùng chứa (tính bằng MB) trước khi được xoay vòng. Giá trị được phép nằm trong khoảng từ 1 đến 250 (bao gồm cả hai giá trị này). Mặc định: 50. |
| Không bắt buộc. Số lượng file nhật ký tối đa sẽ lưu giữ trên mỗi vùng chứa. Giá trị được phép nằm trong khoảng từ 1 đến 30 (bao gồm cả hai giá trị này). Mặc định: 7. |
| Không bắt buộc. Số ngày lưu giữ nhật ký trong CloudWatch. Mặc định: |
Tên | Mô tả |
---|---|
| Không sử dụng. Để trống thông số này. |
Tên | Mô tả |
---|---|
| Không bắt buộc. Theo mặc định, khóa dịch vụ AWS (tùy chọn Khóa mặc định) được dùng để mã hóa dữ liệu DB & EFS ở trạng thái nghỉ. Dưới đây là những tùy chọn khác:
|
| Không bắt buộc. Bạn có thể cung cấp ID khóa KMS dùng để mã hóa dữ liệu. Để trống mục này nếu tùy chọn Khóa do người dùng cung cấpkhông được chọn. |
| Không bắt buộc. Theo mặc định, dữ liệu đang truyền đến cơ sở dữ liệu được mã hóa. Tùy chọn này hiện chỉ áp dụng cho Coreapp. Chúng tôi chưa hỗ trợ mã hóa Webapp. Ngoài ra, với công cụ xử lý cơ sở dữ liệu mới, ngay cả khi bạn tắt tùy chọn này, thì Coreapp vẫn sẽ thực hiện mã hóa, tuy nhiên không tiến hành xác thực chứng chỉ máy chủ (danh tính). |
| Không bắt buộc. Giá trị mặc định chứa gói chứng chỉ RDS. Nếu sử dụng cơ sở dữ liệu không phải RDS, bạn có thể cung cấp gói chứng chỉ CA thích hợp. Nếu không, bạn có thể bỏ trống mục này. Giá trị mặc định là đủ để bật kết nối an toàn với cơ sở dữ liệu. |
| Không bắt buộc. Chứng chỉ ứng dụng dành cho kết nối cơ sở dữ liệu |
| Không bắt buộc. Khóa ứng dụng dành cho kết nối cơ sở dữ liệu |
Bảng điều khiển Grafana cần có các thông số này để truy xuất số liệu ứng dụng cho mục đích giám sát.
Tên | Mô tả |
---|---|
| Bắt buộc. Chỉ định Tên người dùng API WhatsApp Business. |
| Bắt buộc. Chỉ định mật khẩu cho |
Tên | Mô tả |
---|---|
| Bắt buộc. Chỉ định mật khẩu dùng làm mật khẩu đăng nhập cho bảng điều khiển Grafana khi tạo ngăn xếp. |
| Không bắt buộc. Cho biết liệu SMTP có được bật để thiết lập cảnh báo qua email hay không. Giá trị hợp lệ: Mặc định: |
| Không bắt buộc. Máy chủ SMTP dùng trong các cảnh báo qua email. Ví dụ: smtp.gmail.com:465. |
| Không bắt buộc. Chỉ định tên người dùng SMTP được sử dụng trong cảnh báo qua email. |
| Không bắt buộc. Chỉ định mật khẩu SMTP dùng trong cảnh báo qua email. |
Sau khi tạo mẫu thành công, các thông số sau sẽ hiển thị:
Theo mặc định, các quy tắc bảo mật do ngăn xếp tạo cho phép tất cả lưu lượng truy cập có thể truy cập phiên bản EC2 thông qua SSH, điểm cuối API và bảng điều khiển Grafana thông qua HTTPS, cũng như vùng chứa Prometheus và cadvisor. Vì lý do bảo mật, bạn nên chặn trường hợp truy cập không cần thiết. Phần này sẽ minh họa các bước cập nhật quy tắc bảo mật SSH. Bạn phải luôn hạn chế quyền truy cập qua SSH để chỉ cho phép lưu lượng truy cập đáng tin cậy.
"<stackName>-ms-xxx-EcsSecurityGroup"
để hạn chế quyền truy cập qua SSH cho ngăn xếp giám sát.
Sau khi triển khai thành công, bạn cần đặt cấu hình để ứng dụng API WhatsApp Business có thể hoạt động.
Hãy xem hướng dẫn về Số điện thoại để biết thông tin chi tiết hơn về quy trình đăng ký số điện thoại.
Tải xuống chứng chỉ được mã hóa base64 từ tài khoản WhatsApp của bạn trong Trình quản lý kinh doanh trên Facebook bên dưới tab Số điện thoại của Trình quản lý WhatsApp.
Sau khi chọn đúng số điện thoại và có chứng chỉ được mã hóa base64, bạn cần đăng ký ứng dụng API WhatsApp Business qua nút account
. Hãy tham khảo tài liệu về Đăng ký để biết thêm thông tin.
Nếu số điện thoại có thể nhận được tin nhắn văn bản, hãy sử dụng phương thức SMS để truy xuất mã đăng ký.
Nếu đã nhận được mã đăng ký từ WhatsApp, bạn có thể bỏ qua bước này.
Sau khi tạo ngăn xếp, bạn cần sử dụng lệnh gọi API shards
để tăng số lượng phiên bản Coreapp đang hoạt động nhằm đạt được thông lượng mong muốn. Bạn có thể tìm thấy số đoạn trong phần Đầu ra của ngăn xếp.
Bạn có thể tham khảo cấu hình của lệnh gọi lại web API WhatsApp Business và các thông số khác trong tài liệu về Cài đặt ứng dụng. Bạn nên dùng các cài đặt ứng dụng sau đây để đạt được thông lượng ổn định.
{ "settings": { "application": { "callback_backoff_delay_ms": 3000, "callback_persist": true, "db_garbagecollector_enable": false, # change this to true when there are no ongoing messaging campaigns "heartbeat_interval": 5, "max_callback_backoff_delay_ms": 900000, "media": { "auto_download": [ "document", "image", "video", "voice", "sticker", "audio" ] }, "notify_user_change_number": true, "pass_through": false, "sent_status": true, "show_security_notifications": false, "skip_referral_media_download": false, "unhealthy_interval": 30, "wa_id": "12245552741", "webhooks": { "max_concurrent_requests": 24, "message": { "delivered": true, "read": true, "sent": true }, "url": "<YOUR_WEBHOOK_SERVER_URL>" } } }, "meta": { "api_status": "stable", "version": "2.41.3" } }
Theo mặc định, ứng dụng API WhatsApp Business sẽ tạo chứng chỉ tự ký khi chứng chỉ được tạo. Có thể bạn sẽ phải sử dụng chứng chỉ của Cơ quan chứng thực (CA) (dùng để tạo chứng chỉ tự ký) để xác minh điểm cuối ứng dụng API WhatsApp Business và tránh cảnh báo về mức độ tin cậy của chứng chỉ.
Bạn có thể tải chứng chỉ CA xuống và lưu trữ trên thiết bị để tránh cảnh báo về mức độ tin cậy của chứng chỉ hoặc tải lên chứng chỉ của chính bạn. Tham khảo tài liệu về nút certificate
để biết thêm thông tin.
Trong khi triển khai AWS, chứng chỉ SSL sẽ được tạo bằng tên máy chủ ứng dụng cân bằng tài. Nếu bạn dùng địa chỉ IP (thay vì sử dụng tên máy chủ) để xin cấp quyền truy cập, cảnh báo sẽ vẫn hiển thị.
Trong bản phát hành trong tương lai, WhatsApp sẽ hỗ trợ đặt cấu hình các chứng chỉ SSL do khách hàng cung cấp.
Sau khi bước cấu hình và đăng ký thành công, hệ thống có thể gửi và nhận tin nhắn để xác thực chức năng cơ bản của ứng dụng API WhatsApp Business. Quá trình này được mô tả đầy đủ trong tài liệu về Tin nhắn.
Sau khi nhận tin nhắn thành công, ứng dụng API WhatsApp Business sẽ POST
trạng thái/chi tiết tin nhắn lên Webhook đã đặt cấu hình trong Bước 3.
Nếu bạn nhận được tin nhắn thì xin chúc mừng. Bạn đã hoàn tất! Vui lòng xem Tài liệu tham khảo để biết thêm thông tin về các điểm cuối API có sẵn.
Cách khởi động lại ứng dụng API WhatsApp Business trong bảng điều khiển ECS (ví dụ: https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters):
Thao tác này sẽ dừng cả Webapp và CoreApp. Ngay sau đó, cơ sở hạ tầng AWS sẽ khởi động lại cả Webapp và CoreApp.
Hệ thống của bạn có thể dừng chạy khoảng 1 hoặc 2 phút.
Nếu cập nhật trực tiếp ngăn xếp CloudFormation, cơ sở dữ liệu của bạn có thể bị hủy và được tạo lại. Bạn nên làm theo các bước thủ công trong phần tiếp theo để cập nhật hệ thống nhằm tránh tình trạng mất dữ liệu.
Phần này hướng dẫn cách nâng cấp cả Ứng dụng API WhatsApp Business và Mẫu CloudFormation (CFN). Hệ thống sẽ dừng chạy trong quá trình nâng cấp, vậy nên đừng gửi tin nhắn trong thời gian này. Bạn chỉ có thể tiếp tục gửi tin nhắn sau khi nâng cấp xong.
Bạn có thể nâng cấp Mẫu CFN và phiên bản ứng dụng API WhatsApp Business cùng lúc theo cách sau:
Xác minh nâng cấp nhanh:Gửi một tin nhắn văn bản và xác minh rằng phản hồi API chứa đúng số phiên bản (tức là phiên bản mới). Xác minh thêm rằng người nhận đã nhận được tin nhắn.
Thông thường, các doanh nghiệp muốn thiết lập môi trường thông lượng cao cho chiến dịch có thời gian giới hạn, đồng thời muốn duy trì môi trường chi phí thấp trong thời gian không chạy chiến dịch. Phần này đưa ra các gợi ý về cách giảm quy mô thiết lập AWS theo cách thủ công để tiết kiệm chi phí.
Quan trọng: Lưu ý rằng hệ thống sẽ có thời gian dừng chạy. Thời gian dừng chạy ước tính có thể từ 5 đến 15 phút. Hãy đảm bảo bạn làm theo tất cả những cách làm tốt nhất của DevOps, chẳng hạn như sao lưu cài đặt ứng dụng và sao lưu cơ sở dữ liệu.
2
.c5.large
có chi phí thấp hơn.
c5.large
, sau đó chọn Tạo phiên bản mẫu.
r5.xlarge
.
3
.3
.2
.2
.2
.