我們即將停用內部部署 API。請參閱我們的內部部署 API 停用文件以取得詳細資訊,並瞭解如何轉移到我們的新一代雲端 API。

使用 Amazon Web Services 部署

本文件顯示如何使用 Amazon Web Services(AWS)來部署 WhatsApp Business API。此程序可分為兩個主要步驟:

  1. WhatsApp Business API 用戶端部署
  2. WhatsApp Business API 用戶端配置

完成設定後,您可選擇升級用戶端。如果需要重新啟動網路應用程式和核心應用程式,請依照這些步驟操作。

本文件採用新的 AWS 範本,我們已針對更高、更穩定的訊息輸送量測試過該範本。如果您要尋找較舊的 AWS 範本,請參閱 AWS 封存

開始使用

開始之前,您需要:

設定 AWS 帳號編號

您需要設定有效的 AWS 帳號並熟悉 AWS 上的作業。WhatsApp 提供 CloudFormation 範本,可供輕鬆部署 WhatsApp Business API 用戶端。如需詳細資訊,請參閱 AWS 入門資源中心

建立 AWS 金鑰對

您需要建立新的金鑰組,以存取由 WhatsApp Business API 範本建立的 EC2 執行個體。您也可使用之前建立的金鑰對。請參閱「Amazon EC2 金鑰對」文件,瞭解如何建立金鑰對並用於 EC2 執行個體。

您必須使用部署 WhatsApp Business API 所在的區域來建立金鑰對。

訂閱 CentOS 9 映像檔

WhatsApp Business API 用戶端使用 CentOS 9 映像檔(可在 AWS Marketplace 中取得)。使用範本之前,應先審閱並接受服務條款與條件。如果不接受條款,將導致範本建立失敗。

若要審閱並接受 CentOS 9 AMI 映像檔:

  1. 前往 AWS Marketplace:CentOS 9(x86_64)- 含更新 HVM 頁面
  2. 點擊右上角的 Continue to Subscribe(繼續訂閱),然後點擊 Accept Terms(接受條款)按鈕。

支援的區域

WhatsApp Business API 範本使用 EFS 資源類型,並非在所有 AWS 區域都可用。因此,目前僅支援以下區域:

  • 維吉尼亞北部(us-east-1)
  • 俄亥俄(us-east-2)
  • 加利佛尼亞北部(us-west-1)
  • 奧勒岡(us-west-2)
  • 孟買(ap-south-1)
  • 首爾(ap-northeast-2)
  • 新加坡(ap-southeast-1)
  • 雪梨(ap-southeast-2)
  • 東京(ap-northeast-1)
  • 法蘭克福(eu-central-1)
  • 愛爾蘭(eu-west-1)

WhatsApp 會依據初始測試,判定我們是否能夠提供可用於所有區域的替代選項。

常見問題

部署

步驟 1:[選用] 網路設定

註冊 AWS 帳號,通常會建立 Virtual Private Cloud(VPC)網路。此外,可能還需要一些企業商務特定的自訂和存取控制限制。

如果您已建立 VPC 網路基礎結構,則可以略過此步驟。否則,可使用下列範本在 AWS 上建立網路基礎結構。

網路範本僅供參考,您可以根據特定需要進行修改。

網路需求

  • 區域內的不同可用性區域中至少必須有兩個子網路。否則,建立 RDS(資料庫)資源時,範本建立將失敗。
  • 應允許對 HTTP(埠:80)、HTTPS( 埠:443)和 SSH(埠:22)的入站存取。基於安全考量,強烈建議您使用 HTTPS,並避免使用 HTTP

若要部署網路範本:

  1. 前往您所在區域的 CloudFormation 主控台(例如 eu-west-1)。
  2. 選擇 Create Stack(建立堆疊)。
  3. GitHub 下載 wa_ent_net.yml 檔案並儲存在本機。
  4. 選擇 Upload a template file(上傳範本檔案)做為範本來源,並上傳從步驟 3 下載的範本檔案。
    建立堆疊
  5. 點擊 Next(下一步)。
  6. Specify stack details(指定堆疊詳細資訊)畫面中,根據下表輸入參數值:

參數

名稱說明

Stack name

必要項目。

所要建立的堆疊名稱。

可用區域配置

名稱說明

Availability zones

必要項目。

用於建立 VPC 的可用區域(AZ)。
範本至少需要選擇 2 個 AZ。若是生產環境,建議至少選擇 3 個 AZ。

Number of availability zones

必要項目。

所選擇的可用區域數目。

VPC 配置

名稱說明

IP address range

必要項目。

此 VPC 的 IP 位址範圍(CIDR)。

Tenancy

必要項目。

VPC 租用模式
選項:defaultdedicated

公有子網路配置

名稱說明

IP range - subnet #1

必要項目。

公有子網路的 IP 位址範圍(CIDR)

IP range - subnet #2

必要項目。

公有子網路的 IP 位址範圍(CIDR)

IP range - subnet #3

選用項目。

如果可用區域數目大於 2,則此為必要項目。

IP range - subnet #4

選用項目。

如果可用區域數目大於 3,則此為必要項目。

私有子網路配置

名稱說明

Create private subnets?

必要項目。

選項:true(預設值)、false
如果基於某原因而不需要私有子網路,此標示可設為 false

IP range - subnet #1

條件式項目。

如果私有子網路建立程序設為 true,則此為必要項目。

IP range - subnet #2

條件式項目。

如果私有子網路建立程序設為 true,則此為必要項目。

IP range - subnet #3

條件式項目。

如果私有子網路建立程序設為 true,且 AZ 數目大於 2,則此為必要項目。

IP range - subnet #4

條件式項目。

如果私有子網路建立程序設為 true,且 AZ 數目大於 3,則此為必要項目。

步驟 2:上傳資料庫和監控堆疊配置檔

在 AWS 上部署 WhatsApp Business API 堆疊之前,您需要先將參照子堆疊的配置檔上傳到您有讀取權限的 S3 儲存貯體。

  1. 建立新的 S3 儲存貯體,或使用您有讀取權限的現有 S3 儲存貯體。
  2. GitHub 下載 wa_ent_db.yml 檔案和 wa_ent_monitoring.yml 檔案,並將這兩個檔案上傳到步驟 1 中提及的 S3 儲存貯體。
  3. 從「Objects」(物件)清單中選擇 wa_ent_db.yml 檔案,然後複製其網址。其格式應為 https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.yml
  4. wa_ent.yml 檔案中,將 dbStack 中的 TemplateURL 值替換為步驟 3 中的物件網址並儲存檔案。
  5. 從「Objects」(物件)清單中選擇 wa_ent_monitoring.yml 檔案,然後複製其網址。其格式應為 https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml
  6. wa_ent.yml 檔案中,將 Monitoring 堆疊中的 TemplateURL 值替換為步驟 5 中的物件網址並儲存檔案。
上傳至 S3 儲存貯體

步驟 3:WhatsApp Business API 部署

WhatsApp Enterprise 為主要範本,並建立 WhatsApp Business API 用戶端所需的所有資源(網路除外)。如前所述,如果需要,此範本也會建立資料庫資源。

若要部署 WhatsApp Business API 用戶端:

  1. 前往您所在區域的 CloudFormation 主控台(例如 eu-west-1)。
  2. 選擇 Create Stack(建立堆疊)。
  3. GitHub 下載 wa_ent.yml 檔案並儲存在本機。
  4. 選擇 Upload a template file(上傳範本檔案)做為範本來源,並上傳從步驟 3 下載的範本檔案。
    建立堆疊
  5. 點擊 Next(下一步)
  6. 然後您就可以輸入參數。參數說明請見下表。
  7. 設定所有參數(如下表所示)後,點擊 Next(下一步)進入 Configure stack options(設定堆疊選項)頁面。您可以依據自己偏好進行任何所需的變更,然後點擊 Next(下一步)。
  8. Review stack(檢閱堆疊)頁面上,您會看到參數值和堆疊選項的摘要。驗證後,勾選 Capabilities(功能)區段中的兩個方塊,並點擊 Submit(提交),開始建立堆疊。
    注意:部署大約需要 20 至 30 分鐘。

參數

名稱說明

Stack name

必要項目。

所要建立的堆疊名稱。

堆疊名稱必須小於或等於 22 個字元。注意:若是 ap-southeast-1、ap-southeast-2、ap-northeast-1 或 ap-northeast-2 區域中的部署,堆疊名稱不得使用超過 8 個字元。

如果 stack name 的長度大於上述要求,建立堆疊時會因為無法建立 SSL 憑證而中止執行並失敗。

一般配置

名稱說明

High Availability

選用項目。

啟用高可用性功能。


預設值:enabled

Desired Throughput

必要項目。

您希望每秒傳送的訊息數量。


Type of Message 選項一起使用,傳送所選擇的訊息類型時,系統會自動選擇並設定伺服器和資料庫資源,以配合所需的輸送量。

Type of Message

必要項目。

您希望傳送和接收的主要訊息類型。


Desired Throughput 選項一起使用,傳送所選擇的訊息類型時,系統會自動選擇並設定伺服器和資料庫資源,以配合所需的輸送量。

Host exporter for instance monitoring

選用項目。

在每個核心應用程式主機上安裝 node-exporter 以進行執行個體監控。


預設值:enabled

網路配置

名稱說明

Network Stack Name

必要項目。

網路設定步驟所建立的網路 CloudFormation 堆疊名稱。

Number of subnets

必要項目。

所選擇的子網路數目。


目前我們僅針對部署支援 2 個子網路,並將 ECS 任務平均分散在所有主機上。

Load balancer scheme

必要項目。

目前我們僅支援開放給所有人檢視、面向網際網路的負載平衡器。請在建立 API 堆疊後修改安全群組,以關閉不必要的存取權限。

容器配置

名稱說明

Keypair to use

必要項目。

用來存取 EC2 執行個體的適當金鑰對(如有需要)。

WA Enterprise container registry

選用項目。

這是為了用於未來的校訂,以及支援實驗性 WhatsApp Business API 用戶端。預設值應適用於大多數情況。

WA Enterprise Client version

必要項目。

一律建議使用最新的穩定版本(請參閱變更紀錄查詢最新版本)。
格式:v2.yy.xx

WhatsApp Business API 用戶端版本一律以「v」開頭,除非另有明確說明。使用不正確的版本將導致堆疊建立失敗。

EBS volume size

必要項目。

用於生產工作負載時,建議選擇 32GB 以上。

資料庫配置

名稱說明

Store configuration in DB

選用項目。

啟用時可將配置資訊儲存在資料庫中。
選項:true(預設值)、false
將此值設為 false 會停止將配置資訊儲存在資料庫中,並改為儲存在檔案中。

Existing DB hostname

選用項目。

現有的資料庫主機名稱。
如果您已經有 WhatsApp Business API 用戶端專用的 MySQL 資料庫執行個體,可以在這裡輸入主機名稱。
若保留空白,則會建立新的 Amazon Aurora 執行個體。為了保持穩定的高輸送量,強烈建議您建立新的 Aurora 資料庫,或使用此範本先前建立的現有 Aurora 資料庫。

Administrator name

必要項目。

存取資料庫的管理員名稱。

Administrator password

必要項目。

存取資料庫的管理員密碼。

資料庫密碼不應包含下列任何字元:?{}&~!()^/"@

Server port

必要項目。

用來存取資料庫後端的連接埠編號。

Persist DB Connection

選用項目。

指示是否保留網路容器的資料庫連線。


預設值:enabled

DB Idle Connection Timeout

選用項目。

以毫秒為單位的時間長度,過了此時限後,資料庫即關閉閒置連線。
預設值:180000 毫秒

記錄配置

名稱說明

Logging driver for container logs

選用項目。

用於容器記錄的記錄驅動程式。
選項:json-fileawslogs(預設值)
json-file 值會將記錄儲存在 EC2 主機上。awslogs 值會將所有容器記錄串流至 CloudWatch。

Maximum container log file size

選用項目。

容器記錄檔案在輪換之前的大小上限(以 MB 為單位)。

允許的值為 1 到 250。預設值:50。

Maximum number of container log files

選用項目。

每個容器可保留的記錄檔案數目上限。
已停止的容器最終會從主機中移除。在這種情況下,該容器保留的所有記錄檔案都會刪除。

允許的值為 1 到 30。預設值:7。

Days to retain CloudWatch logs

選用項目。

在 CloudWatch 中保留記錄的天數。
請從清單中選擇其中一個可用的值。

預設值7

檔案系統配置

名稱說明

File system identifier

未使用。

請將此參數保留空白。

安全配置

名稱說明

Key to encrypt DB & EFS

選用項目。

預設會使用 AWS 服務金鑰(Default-Key(預設金鑰)選項)來進行 DB 和 EFS 靜態資料加密。其他選項為:

  • Unencrypted(未加密):靜態資料未加密
  • Create-New-Key(建立新金鑰):建立新的 KMS 金鑰,並用來將資料加密
  • User-Provided-Key(用戶提供金鑰):您可以提供用來將資料加密的 KMS 金鑰編號。如果已選擇其他選項,請將此選項保留空白。

User provided key id

選用項目。

您可以提供用來將資料加密的 KMS 金鑰編號。如果沒有選擇 User-Provided-Key(用戶提供金鑰)選項,請將此選項保留空白。

DB connection encryption

選用項目。

依預設,傳輸到資料庫的資料會加密。此設定目前僅適用於核心應用程式,尚未支援網路應用程式加密。此外,若使用新的資料庫引擎,即使停用此選項,核心應用程式仍會執行加密,但不具伺服器憑證(身分)驗證。

CA certificate for DB connection

選用項目。

預設值包含 RDS 憑證組合包。如果使用非 RDS 資料庫,則可提供適用的 CA 憑證組合包,或保留空白。預設值適合啟用與資料庫的安全連線。

Client certificate for DB connection

選用項目。

資料庫連線的用戶端憑證

Client key for DB connection

選用項目。

資料庫連線的用戶端金鑰

WhatsApp Business API 存取點

Grafana 儀表板需要這些參數來擷取應用程式指標,以進行監控。

名稱說明

WAWebUsername

必要項目。

指定 WhatsApp Business API 用戶名稱。

WAWebPassword

必要項目。

指定 WAWebUsername 的密碼。這會是您第一次登入時變更預設密碼後的新密碼。

Grafana

名稱說明

GrafanaAdminPassword

必要項目。

指定在建立堆疊時,用作 Grafana 儀表板登入密碼的密碼。

GrafanaEnableSmtp

選用項目。

指示是否啟用 SMTP 以設定電子郵件提醒。有效值為:0 代表已停用,1 代表已啟用。

預設值:0(已停用)

GrafanaSmtpHost

選用項目。

電子郵件提醒中使用的 SMTP 主機。例如 smtp.gmail.com:465

GrafanaSmtpUser

選用項目。

指定電子郵件提醒中使用的 SMTP 用戶名稱。

GrafanaSmtpPassword

選用項目。

指定電子郵件提醒中使用的 SMTP 密碼。

部署後輸出

成功建立範本之後,會顯示下列參數:

  • 負載平衡器名稱:存取 WhatsApp Business 平台 API 用戶端之負載平衡器的主機名稱
  • 資料庫主機名稱:在範本建立期間建立或提供的資料庫主機名稱
  • 資料庫連接埠編號:用於資料庫連線的連接埠編號
  • ECS 叢集名稱:所建立之 ECS 叢集的名稱
  • 記錄保留天數:保留記錄的天數
  • 資料庫連線 CA:資料庫連線 CA 的值(如果已設定)
  • 資料庫連線憑證:資料庫連線憑證的值(如果已設定)
  • 資料庫連線金鑰:資料庫連線金鑰的值(如果已設定)
  • Grafana:Grafana 儀表板網址
  • ShardCount:為 WhatsApp Business Platform 平台 API 設定的分片數量

編輯 SSH 安全規則

依預設,堆疊建立的安全規則允許所有流量都能夠透過 SSH 傳送到 EC2 執行個體、透過 HTTPs 傳送到 API 端點和 Grafana 儀表板,以及傳送到 cadvisor 和 Prometheus 容器。基於安全考量,強烈建議您關閉不必要的存取權限。本節將以更新 SSH 安全規則的步驟為例進行說明。您應該一律將 SSH 存取權限限制用於您信任的流量。

  1. 在 EC2 - 安全群組主控台(例如:EC2 管理主控台(amazon.com))中:
    1. 在右上角選擇正確的區域。
    2. 選擇包含 <stackName>-EcsSecurityGroup 的安全群組,然後切換到 Inbound Rules(傳入規則)標籤。
      編輯傳入規則
    3. 選擇 Edit inbound rules(編輯傳入規則),更新 Source(來源)欄,僅允許信任的流量(例如:My IP(我的 IP))透過 SSH 存取 EC2 主機。
    4. 調整所有安全規則後,點擊 Save rules(儲存規則)以套用變更。
    5. 針對包含 "<stackName>-ms-xxx-EcsSecurityGroup" 的安全群組重複這些變更,以限制監控堆疊的 SSH 存取權限。

WhatsApp Business API 用戶端配置

一旦成功部署 WhatsApp Business API 用戶端,就需要進行設定使其運作。

步驟 1:電話註冊

請參閱電話號碼指南,進一步瞭解電話號碼註冊的詳細資訊。

前往 Facebook 企業管理平台,在 WhatsApp 管理工具的電話號碼頁籤下,從您的 WhatsApp 帳號下載 base64 編碼的憑證。

選擇正確的電話號碼並擁有 base64 編碼的憑證後,您需要透過 account 節點註冊 WhatsApp Business API 用戶端。如需詳細資訊,請參閱「註冊」文件

如果電話號碼可以接收簡訊,請使用簡訊方式擷取註冊代碼。

如果您已經收到 WhatsApp 的註冊代碼,可以略過此步驟。

步驟 2:設定分片

建立堆疊後,您需要使用 shards API 呼叫來增加作用中核心應用程式執行個體的數目,以達到所需的輸送量。您可以在堆疊的「輸出」部分找到分片的數量。

步驟 3:更新應用程式設定

您可以在「應用程式設定」文件中找到 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"
    }
}

      
      
    

步驟 4:[選用] SSL 配置

建立 WhatsApp Business API 用戶端時,預設會產生自我簽署憑證。可能會需要用於產生自我簽署憑證的憑證授權單位(CA)憑證來驗證 WhatsApp Business API 用戶端端點,並避免憑證信任警告。

您可以下載 CA 憑證並儲存在本機上以避免憑證信任警告,或上傳您自己的憑證。如需詳細資訊,請參閱 certificate 節點說明文件

在 AWS 部署中,SSL 憑證是使用負載平衡器主機名稱而建立。如果存取使用 IP 位址,而不是主機名稱,仍會出現警告。

WhatsApp 在未來的發行版本中,將會支援設定顧客提供的 SSL 憑證。

步驟 5:設定的驗證

完成配置和註冊步驟後,即可傳送和接收訊息來驗證 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)中:

  1. 在右上角選擇正確的區域。
  2. 從清單中選擇適當的叢集。
  3. Services(服務)頁籤中,選擇包含 WAEntService 的服務名稱。
  4. 選擇 Tasks(任務)頁籤。通常應該只有一項工作,其編號由十六進位數字組成。
  5. Tasks(任務)視窗中,點擊右上角的 Stop(停止),然後在出現提示時再次點擊 Stop(停止)。

這樣會同時停止網路應用程式和核心應用程式。不久後,AWS 基礎架構會重新啟動網路應用程式和核心應用程式。

您可以預期大概會有一、兩分鐘的停機時間。

升級

直接更新 CloudFormation 堆疊可能會導致資料庫遭到銷毀並重新建立。強烈建議您按照下一節中的手動步驟來更新系統,以避免資料遺失。

本節逐步說明如何升級 WhatsApp Business API 用戶端和 CloudFormation(CFN)範本。執行升級會導致停機,因此請勿在此期間傳送訊息。僅在升級完成後,再恢復傳送訊息。

您可以執行以下操作來同時升級 CFN 範本和 WhatsApp Business API 用戶端版本:

  1. 在「WhatsApp Business API 用戶端升級」操作說明的步驟 5 中,不要選擇 Use current template(使用目前範本),改為選擇 Replace current template(取代目前範本)。
  2. Specify template(指定範本)區段中,選擇「Upload a template file」(上傳範本檔案),並選擇從 GitHub 下載的最新範本檔案。

WhatsApp Business API 用戶端升級

  1. 前往 CFN 主控台(例如 https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active)。
  2. 在右上角選擇正確的區域。
  3. 選擇已建立的 WhatsApp Business API 用戶端堆疊。
  4. 點擊 Update(更新)。
  5. Prerequisite - Prepare template(先決條件 - 準備範本)」頁面上,選擇 Replace current template(取代目前範本)選項。在 Specify template(指定範本)區段中,選擇「Upload a template file」(上傳範本檔案),並選擇從 GitHub 下載的最新範本檔案。點擊 Next(下一步)。
  6. Specify stack details(指定堆疊詳細資訊)頁面上,將 WhatsApp Business API 用戶端(容器)版本變更為所需的版本。請勿變更任何其他參數。點擊 Next(下一步)。
  7. Configure stack options(設定堆疊選項)頁面上,點擊 Next(下一步)。
  8. Review(檢閱)頁面上,選擇「I acknowledge that AWS CloudFormation might create IAM resources with custom names」(我瞭解 AWS CloudFormation 可能會使用自訂名稱來建立 IAM 資源)。檢閱 Change set preview(變更設定的預覽)區段中是否有任何非預期的變更。如果有任何非預期的變更或您無法確定,請聯絡 WhatsApp 直接支援。點擊 Update stack(更新堆疊)。升級完成後,即可在 CFN 主控台中追蹤堆疊更新狀態,且堆疊更新狀態會從 UPDATE_IN_PROGRESS 變更為 UPDATE_COMPLETE

快速升級驗證:傳送文字訊息並驗證 API 回應是否包含正確的版本號碼(即新版本)。同時驗證收件者是否收到訊息。

WhatsApp CFN 範本升級

  1. 前往 CFN 主控台(例如 https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active)。
  2. 在右上角選擇正確的區域。
  3. 選擇已建立的 WhatsApp Business API 用戶端堆疊。
  4. 點擊 Update(更新)。
  5. Prerequisite - Prepare template(先決條件 - 準備範本)」頁面上,選擇 Replace current template(取代目前範本)選項。在 Specify template(指定範本)區段中,選擇「Upload a template file」(上傳範本檔案),並選擇從 GitHub 下載的最新範本檔案。點擊 Next(下一步)。
  6. Specify Stack Details(指定堆疊詳細資訊)頁面上,根據前面各節中的資訊輸入適當的參數。點擊 Next(下一步)。
  7. Configure Stack Options(設定堆疊選項)頁面上,點擊 Next(下一步)。
  8. Review(檢閱)頁面上,選擇「I acknowledge that AWS CloudFormation might create IAM resources with custom names」(我瞭解 AWS CloudFormation 可能會使用自訂名稱來建立 IAM 資源)。檢閱 Change set preview(變更設定的預覽)區段中是否有任何非預期的變更。如果有任何非預期的變更或您無法確定,請聯絡 WhatsApp 直接支援。點擊 Update stack(更新堆疊)。升級完成後,即可在 CFN 主控台中追蹤堆疊更新狀態,且堆疊更新狀態會從 UPDATE_IN_PROGRESS 變更為 UPDATE_COMPLETE

如何在系統閒置時手動降低成本(選用)

企業通常會想要為有時間限制的行銷活動設定高輸送量環境,並希望在非行銷活動時間保持低成本環境運作。本節提供如何手動調低 AWS 設定以節省成本的建議。

重要事項:請注意這會有停機時間。預計停機時間可能為 5 至 15 分鐘。請確認您已遵循所有 DevOps 最佳作法,例如應用程式設定備份和資料庫備份。

  1. 在 ECS 主控台(例如:Amazon ECS)中:
    1. 在右上角選擇正確的區域。
    2. 從清單中選擇適當的叢集。
    3. Services(服務)頁籤中,選擇包含 WAEntCoreappService 的服務名稱。選擇 Edit Service(編輯服務),並將「Desired tasks」(所需任務)值更新為 0。
      部署配置
    4. 針對所有其他服務重複步驟 c,包括 WAEntWebServiceWAEntMasterServiceHostExporterService
    5. 返回叢集頁面,在 Tasks(任務)頁籤中,確認上述服務沒有正在執行中的任務。
  2. 在 EC2 - Auto Scaling Groups(自動擴展群組)主控台(例如:自動擴展群組 | EC2 管理主控台(amazon.com))中:
    1. 在右上角選擇正確的區域。
    2. 選擇名稱中包含 HAECSAutoScalingGroup 之堆疊的自動擴展群組,然後選擇 Edit(編輯)。將「Desired capacity」(所需容量)和「Minimum capacity」(容量下限)都更新為 3
      群組大小
    3. 選擇名稱中包含 HAECSAutoScalingGroupWeb 之堆疊的自動擴展群組,然後選擇 Edit(編輯)。將「Desired capacity」(所需容量)和「Minimum capacity」(容量下限)都更新為 2
  3. 選用)如果「Type of message​​」(訊息類型)的初始值為任何映像類型,您可以將 EC2 執行個體類型更換為較便宜的 c5.large 選項。
    1. 在 EC2 - Launch Templates(啟動範本)主控台中,從清單中選擇適當的啟動範本。
    2. 選擇 Actions(動作)- Modify template (create new version)(修改範本(建立新版本))。
      啟動範本主控台
    3. Instance type(執行個體類型)區段中,將「Instance type」(執行個體類型)更新為 c5.large,然後選擇 Create template version(建立範本版本)。
      執行個體類型
    4. 在 EC2 - Auto Scaling Groups(自動擴展群組)主控台中,選擇名稱中包含 HAECSAutoScalingGroup 之堆疊的自動擴展群組。
    5. Launch template(啟動範本)區段中選擇 Edit(編輯)。
    6. 選擇在步驟 3c 中建立的新啟動範本,然後選擇 Update(更新)。
      啟動範本
  4. 在 RDS 主控台(例如:RDS 管理主控台(amazon.com))中:
    1. 在右上角選擇正確的區域。
    2. 從清單中選擇適當的 Aurora 資料庫。
    3. 選擇 Modify(修改),然後將「DB instance class」(資料庫執行個體類別)更新為 r5.xlarge
      執行個體配置
  5. 在 ECS 主控台(例如:Amazon ECS)中:
    1. 在右上角選擇正確的區域。
    2. 從清單中選擇適當的叢集。
    3. Services(服務)頁籤中,選擇包含 WAEntCoreappService 的服務名稱。選擇 Edit Service(編輯服務),並將「Desired tasks」(所需任務)值更新為 3
    4. Services(服務)頁籤中,選擇包含 HostExporterService 的服務名稱。選擇 Edit Service(編輯服務),並將「Desired tasks」(所需任務)值更新為 3
    5. Services(服務)頁籤中,選擇包含 WAEntWebService 的服務名稱。選擇 Edit Service(編輯服務),並將「Desired tasks」(所需任務)值更新為 2
    6. Services(服務)頁籤中,選擇包含 WAEntMasterService 的服務名稱。選擇 Edit Service(編輯服務),並將「Desired tasks」(所需任務)值更新為 2
  6. 等待所有服務啟動所需數量的任務。所有任務都開始執行後,使用設定分片 API 將分片重設為 2
  7. 使用健康狀態 API 來驗證系統的健康狀態。也可以傳送和接收訊息來驗證 WhatsApp Business API 用戶端的基本功能。完整說明請參閱「訊息」文件