我們即將停用內部部署 API。詳情請參閱內部部署 API 停用文件,並從中了解如何轉用新一代雲端 API。
開始之前,您需要:
您需要設定有效的 AWS 帳號並熟悉 AWS 上的作業。WhatsApp 提供 CloudFormation 範本,可供輕鬆部署 WhatsApp Business API 用戶端。如需詳細資訊,請參閱 AWS 入門資源中心。
您需要建立新的金鑰組,以存取由 WhatsApp Business API 範本建立的 EC2 執行個體。您也可使用之前建立的金鑰對。請參閱「Amazon EC2 金鑰對」文件,瞭解如何建立金鑰對並用於 EC2 執行個體。
您必須使用部署 WhatsApp Business API 所在的區域來建立金鑰對。
WhatsApp Business API 用戶端使用 CentOS 9 映像檔(可在 AWS Marketplace 中取得)。使用範本之前,應先審閱並接受服務條款與條件。如果不接受條款,將導致範本建立失敗。
若要審閱並接受 CentOS 9 AMI 映像檔:
WhatsApp Business API 範本使用 EFS 資源類型,並非在所有 AWS 區域都可用。因此,目前僅支援以下區域:
WhatsApp 會依據初始測試,判定我們是否能夠提供可用於所有區域的替代選項。
沒有,我們不支援 KOPS。我們支援基於 ECS 的 AWS 解決方案。我們也提供一般 Kubernetes minikube 設定。
註冊 AWS 帳號,通常會建立 Virtual Private Cloud(VPC)網路。此外,可能還需要一些企業商務特定的自訂和存取控制限制。
如果您已建立 VPC 網路基礎結構,則可以略過此步驟。否則,可使用下列範本在 AWS 上建立網路基礎結構。
網路範本僅供參考,您可以根據特定需要進行修改。
若要部署網路範本:
名稱 | 說明 |
---|---|
| 必要項目。 所要建立的堆疊名稱。 |
名稱 | 說明 |
---|---|
| 必要項目。 用於建立 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」開頭,除非另有明確說明。使用不正確的版本將導致堆疊建立失敗。 |
| 必要項目。 用於生產工作負載時,建議選擇 32GB 以上。 |
名稱 | 說明 |
---|---|
| 選用項目。 啟用時可將配置資訊儲存在資料庫中。 |
| 選用項目。 現有的資料庫主機名稱。 |
| 必要項目。 存取資料庫的管理員名稱。 |
| 必要項目。 存取資料庫的管理員密碼。 資料庫密碼不應包含下列任何字元:?{}&~!()^/"@ |
| 必要項目。 用來存取資料庫後端的連接埠編號。 |
| 選用項目。 指示是否保留網路容器的資料庫連線。 預設值: |
| 選用項目。 以毫秒為單位的時間長度,過了此時限後,資料庫即關閉閒置連線。 |
名稱 | 說明 |
---|---|
| 選用項目。 用於容器記錄的記錄驅動程式。 |
| 選用項目。 容器記錄檔案在輪換之前的大小上限(以 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 用戶端,就需要進行設定使其運作。
請參閱電話號碼指南,進一步瞭解電話號碼註冊的詳細資訊。
前往 Facebook 企業管理平台,在 WhatsApp 管理工具的電話號碼頁籤下,從您的 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 用戶端時,預設會產生自我簽署憑證。可能會需要用於產生自我簽署憑證的憑證授權單位(CA)憑證來驗證 WhatsApp Business API 用戶端端點,並避免憑證信任警告。
您可以下載 CA 憑證並儲存在本機上以避免憑證信任警告,或上傳您自己的憑證。如需詳細資訊,請參閱 certificate
節點說明文件。
在 AWS 部署中,SSL 憑證是使用負載平衡器主機名稱而建立。如果存取使用 IP 位址,而不是主機名稱,仍會出現警告。
WhatsApp 在未來的發行版本中,將會支援設定顧客提供的 SSL 憑證。
完成配置和註冊步驟後,即可傳送和接收訊息來驗證 WhatsApp Business API 用戶端的基本功能。完整說明請參閱「訊息」文件。
訊息成功接收後,WhatsApp Business API 用戶端會將訊息狀態/詳細資訊 POST
至步驟 3 中設定的 Webhook。
如果您的訊息成功接收,恭喜您已準備就緒!若要深入瞭解可用的 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
。