在開始之前,您需要完成以下事項:
您需要建立一個有效的 AWS 帳戶,並熟習 AWS 的使用方法。WhatsApp 提供了 CloudFormation 範本,以便您輕鬆地部署 WhatsApp Business API 用戶端。詳情請參閱 AWS 入門資源中心。
您需要建立新的密鑰組,以存取由 WhatsApp Business API 範本建立的 EC2 執行個體。您也可以使用之前建立的密鑰組。請參閱 Amazon EC2 密鑰組文件,以了解有關使用 EC2 實例建立和使用密鑰組的資訊。
建立密鑰組時,您需要使用部署 WhatsApp Business API 時所用的地區。
WhatsApp Business API 客戶端會使用 CentOS 7 圖片(可在 AWS Marketplace 中獲取)。請在使用範本前檢閱並接受條款及細則。若不接受使用條款,將導致範本建立失敗。
如要檢閱和接受 CentOS 7 AMI 圖片,請按照下列步驟操作:
WhatsApp Business API 範本會使用 EFS 資源類型,該資源類型並非適用於所有 AWS 地區。目前僅支援下列地區:
WhatsApp 將根據初始測試,決定我們是否可以提供一個適用於所有地區的替代選項。
沒有,我們不支援 KOPS。我們支援基於 ECS 的 AWS 解決方案。我們也提供一般 Kubernetes minikube 設定。
註冊 AWS 帳戶時,您通常都會建立虛擬私有雲端(VPC)網絡。此外,企業可能需要根據具體業務性質,設定一些自訂項目和存取控制限制。
如果您已經建立了 VPC 網絡架構,則可以跳過此步驟。如果尚未建立,則可使用下方的範本在 AWS 建立網絡架構。
此網絡範本僅供參考,您可以根據特定需求作出修改。
如要部署網絡範本,請按照下列步驟操作:
https://wa-biz-cfn.s3.amazonaws.com/wa_ent_net.yml
並點擊「Next」,或點擊名稱 | 說明 |
---|---|
| 此為必要項目。 需要建立的堆疊名稱。 |
名稱 | 說明 |
---|---|
| 此為必要項目。 用於建立 VPC 的可用性區域(AZ)。 |
| 此為必要項目。 所選可用性區域的數量。 |
名稱 | 說明 |
---|---|
| 此為必要項目。 此 VPC 的 IP 位址範圍(CIDR)。 |
| 此為必要項目。 VPC 租約 |
名稱 | 說明 |
---|---|
| 此為必要項目。 公開子網絡的 IP 位址範圍(CIDR) |
| 此為必要項目。 公開子網絡的 IP 位址範圍(CIDR) |
| 此為選用項目。 如果可用性區域多於 2 個,則為必要項目。 |
| 此為選用項目。 如果可用性區域多於 3 個,則為必要項目。 |
名稱 | 說明 |
---|---|
| 此為必要項目。 選項: |
| 視乎具體情況。 如果非公開子網絡建立程序設定為 |
| 視乎具體情況。 如果非公開子網絡建立程序設定為 |
| 視乎具體情況。 如果非公開子網絡建立程序設定為 |
| 視乎具體情況。 如果非公開子網絡建立程序設定為 |
在 AWS 上部署 WhatsApp Business API 堆疊之前,您需要先將引用的子堆疊之配置檔案上載至您擁有讀取權限的 S3 組別。
WhatsApp Enterprise 為主要範本,並會為 WhatsApp Business API 客戶端建立全部所需資源(網絡除外)。如前所述,如果有需要的話,此範本還可以建立資料庫資源。
如要部署 WhatsApp Business API 用戶端,請按照下列步驟操作:
名稱 | 說明 |
---|---|
| 此為必要項目。 需要建立的堆疊名稱。 堆疊名稱不得超過 22 個字元。備註:若是在 ap-southeast-1、ap-southeast-2、ap-northeast-1 或 ap-northeast-2 地區部署,則堆疊名稱必須使用 8 個或以下的字元。 如果 |
名稱 | 說明 |
---|---|
| 此為選用項目。 啟用高可用性功能。 預設: |
| 此為必要項目。 您希望每秒傳送多少則訊息。 與 |
| 此為必要項目。 您希望傳送和接收的主要訊息類型。 與 |
| 此為選用項目。 在每個核心應用程式主機上安裝 node-exporter 以作實例監察用途。 預設: |
名稱 | 說明 |
---|---|
| 此為必要項目。 透過網絡設定步驟建立的網絡 CloudFormation 堆疊名稱。 |
| 此為必要項目。 所選子網絡的數量。 目前我們只支援 2 個部署子網絡,從而將 ECS 任務平均分配到所有主機上。 |
| 此為必要項目。 目前我們只支援適用於互聯網的負載平衡器,而這些平衡器會向大眾顯示。請在建立 API 堆疊後修改安全群組,以避免遭到不必要的存取。 |
名稱 | 說明 |
---|---|
| 此為必要項目。 在必要的情況下,用於存取 EC2 實例的合適密鑰組。 |
| 此為選用項目。 這用於配合未來發展,並支援實驗性 WhatsApp Business API 用戶端。預設值應該適用於大多數情況。 |
| 此為必要項目。 建議您一律使用最新的穩定版本。如需了解最新版本,請參閱變更記錄。 除非另有明確說明,否則 WhatsApp Business API 用戶端版本一律以「v」開頭。使用錯誤版本編號會造成堆疊建立失敗。 |
| 此為必要項目。 若是正式版工作負載,建議選擇 32 GB 或以上。 |
名稱 | 說明 |
---|---|
| 此為選用項目。 允許在資料庫中儲存配置資訊。 |
| 此為選用項目。 現有資料庫主機名稱。 |
| 此為必要項目。 用於存取資料庫的管理員名稱。 |
| 此為必要項目。 用於存取資料庫的管理員密碼。 資料庫密碼不得包含以下任何字元:?{}&~!()^/"@ |
| 此為必要項目。 用於存取資料庫後端的連接埠號碼。 |
| 此為選用項目。 註明是否為網絡容器保留資料庫連接。 預設: |
| 此為選用項目。 資料庫關閉閒置連接後的時長,以毫秒為單位。 |
名稱 | 說明 |
---|---|
| 此為選用項目。 容器記錄的記錄驅動程式。 |
| 此為選用項目。 容器記錄檔案在輪替前的大小上限,以 MB 為單位。 允許的值為 1 至 250(包括兩者)。預設值:50。 |
| 此為選用項目。 每個容器要保留的記錄檔案數量上限。 允許的值為 1 至 30(包括兩者)。預設值:7。 |
| 此為選用項目。 在 CloudWatch 中保留記錄的天數。 預設: |
名稱 | 說明 |
---|---|
| 未有使用。 請留空此參數。 |
名稱 | 說明 |
---|---|
| 此為選用項目。 在預設情況下,AWS 服務密鑰(Default-Key 選項)將用於加密待用 DB 和 EFS 資料。其他選項包括:
|
| 此為選用項目。 您可以提供用於加密資料的 KMS 密鑰編號。如果未選擇 User-Provided-Key 選項,則可將之留空。 |
| 此為選用項目。 在預設情況下,傳輸至資料庫的資料均已加密。此項目現在僅適用於核心應用程式,暫不支援網頁版應用程式加密功能。此外,有了新的資料庫引擎,即便停用此選項,核心應用程式也可以執行加密動作,但不會執行伺服器證書(身分)驗證。 |
| 此為選用項目。 預設值包含 RDS 證書套裝。如果使用的是非 RDS 資料庫,則您可提供相應的 CA 證書套裝或者將之留空。預設值亦足以啟用與資料庫的安全連接。 |
| 此為選用項目。 用於資料庫連接的用戶端證書 |
| 此為選用項目。 資料庫連接的用戶端密鑰 |
Grafana 管理中心需要使用這些參數來擷取應用程式衡量數據,以作監察用途。
名稱 | 說明 |
---|---|
| 此為必要項目。 列明 WhatsApp Business API 用戶名稱。 |
| 此為必要項目。 列明 |
名稱 | 說明 |
---|---|
| 此為必要項目。 列明在建立堆疊時用作 Grafana 管理中心登入密碼的密碼。 |
| 此為選用項目。 註明是否啟用了 SMTP 以設定電郵提醒。有效值包括: 預設: |
| 此為選用項目。 用於電郵提醒的 SMTP 主機。例如,smtp.gmail.com:465。 |
| 此為選用項目。 列明用於電郵提醒的 SMTP 用戶名稱。 |
| 此為選用項目。 列明用於電郵提醒的 SMTP 密碼。 |
成功建立範本後,系統會顯示以下參數:
預設情況下,堆疊建立的安全規則允許所有流量經 SSH 到達 EC2 實例、經 HTTPs 到達 API 端點和 Grafana 管理中心,以及到達 cadvisor 和 Prometheus 容器。出於安全原因,我們強烈建議您停止不必要的存取活動。本部分將舉例說明更新 SSH 安全規則的步驟。您應一律只限您信任的流量存取 SSH。
"<stackName>-ms-xxx-EcsSecurityGroup"
的安全群組重複執行這些變更,以限制監察堆疊的 SSH 存取操作。
成功部署 WhatsApp Business API 後,您將需要配置用戶端使其運作。
如需更多關於註冊手機號碼的詳情,請參閱手機號碼指南。
前往 WhatsApp 管理工具「手機號碼」分頁,於 Facebook 企業管理平台的 WhatsApp 帳戶中下載以 Base64 方式編碼的證書。
選擇正確的手機號碼,並獲取以 Base64 方式編碼的證書後,您便需要透過 account
節點註冊 WhatsApp Business API 用戶端。詳情請參閱註冊文件。
如果手機號碼能夠接收短訊,請使用短訊方法擷取註冊代碼。
如果您已透過 WhatsApp 收到註冊代碼,則可以跳過此步驟。
建立堆疊後,您需要使用 shards
API 呼叫來提高活躍核心應用程式實例的數量,以達到預期的輸送量。分片數量可參閱堆疊的「輸出」部分。
有關 WhatsApp Business API 網絡回呼和其他參數的配置,請參閱應用程式設定文件。為達到穩定的輸送量,建議採用以下應用程式設定。
{ "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" } }
建立 WhatsApp Business API 客戶端時,系統會預設產生自我簽署證書。系統或需用於產生自我簽署證書的「證書認證機構」證書,方可驗證 WhatsApp Business API 用戶端端點,並避免出現證書信任警告。
您可以下載 CA 證書,並將之儲存在本機裝置,以避開證書信任警告,或上載您自己的證書。詳情請參閱 certificate
節點文件。
在 AWS 部署中,系統會使用負載平衡器主機名稱建立 SSL 證書。如果存取時使用 IP 位址,而不是主機名稱,則仍會出現警告。
在未來版本中,WhatsApp 將會支援配置由顧客提供的 SSL 證書。
成功完成配置和註冊步驟後,您便可以傳送和接收訊息,以驗證 WhatsApp Business API 用戶端的基本功能。請查閱訊息文件,以全面了解相關詳細資訊。
成功接收訊息後,WhatsApp Business API 用戶端會向步驟 3 中配置好的 Webhook POST
訊息狀態或詳細資訊。
如果您的訊息已成功被接收,恭喜您已準備就緒!如需更多關於可用 API 端點的資訊,請參閱參考文件。
若要重新開啟 WhatsApp Business API 用戶端,請前往 ECS 主控台(例如 https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters)並按照下列步驟操作:
這個動作會使網頁版應用程式和核心應用程式停止運作。不久後,AWS 基礎架構便會重新開啟網頁版應用程式和核心應用程式。
預計停機時間為大約一至兩分鐘。
如果直接更新 CloudFormation 堆疊,資料庫可能會遭到破壞而需要重新建立。我們強烈建議您按照下一部分中列出的手動步驟來更新系統,以避免丟失資料。
在這個部分,我們會詳細介紹如何升級 WhatsApp Business API 用戶端和 CloudFormation(CFN)範本。執行升級將導致系統停機,因此請勿在此期間傳送訊息。請只在升級完成後繼續傳送訊息。
透過完成下列操作,您即可同時升級 CFN 範本和 WhatsApp Business API 用戶端版本:
快速升級驗證:傳送文字訊息,並確認 API 回應是否包含正確版本編號,即新版本。此外,請確認收件人是否已收到訊息。
企業通常想為有時間限制的宣傳活動設定高訊息輸送量環境,並希望在非宣傳活動時間維持低成本環境運行。本部分提供有關手動縮減 AWS 設定規模以節省成本的建議操作。
重要事項:請注意,系統會有停機時間。預計停機時間可能為 5 至 15 分鐘。請務必跟從所有 DevOps 最佳操作實例,例如應用程式設定備份和資料庫備份。
2
。c5.large
選項。
c5.large
,然後選擇「Create template version」。
r5.xlarge
。
3
。3
。2
。2
。2
。