

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 3：新增後端資料存放區
<a name="gettingstarted-db"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

[步驟 2.1：建立堆疊 - Chef 11](gettingstarted-simple-stack.md) 向您示範如何建立提供 PHP 應用程式的堆疊。不過，這是非常簡單的應用程式，作用只比顯示一些靜態文字多一點。生產應用程式通常使用後端資料存放區，產生類似下圖的堆疊組態。

![\[AWS OpsWorks stack architecture diagram showing PHP app, MySQL, and user interactions.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/php_walkthrough_arch_3.png)


本節示範如何擴展 MyStack 以包含後端 MySQL 資料庫伺服器。雖然您需要做的不只是新增 MySQL 伺服器到堆疊。您也必須將應用程式設定為與資料庫伺服器正確通訊。 OpsWorks Stacks 不會為您執行此操作；您將需要實作一些自訂配方來處理該任務。

**Topics**
+ [步驟 3.1：新增後端資料庫](gettingstarted-db-db.md)
+ [步驟 3.2：更新 SimplePHPApp](gettingstarted-db-update.md)
+ [簡短分類：技術指南、配方和 OpsWorks Stacks 屬性](gettingstarted-db-recipes.md)
+ [步驟 3.3：將自訂技術指南新增至 MyStack](gettingstarted-db-cookbooks.md)
+ [步驟 3.4：執行配方](gettingstarted-db-lifecycle.md)
+ [步驟 3.5：部署 SimplePHPApp 2 版](gettingstarted-db-deploy.md)
+ [步驟 3.6：執行 SimplePHPApp](gettingstarted-db-run.md)

# 步驟 3.1：新增後端資料庫
<a name="gettingstarted-db-db"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

SimplePHPApp 的新版本將其資料存放在後端資料庫中。 OpsWorks Stacks 支援兩種類型的資料庫伺服器：
+ [MySQL OpsWorks Stacks layer](workinglayers-db-mysql.md) 是建立託管 MySQL 資料庫主節點的 Amazon EC2 執行個體的藍圖。
+ Amazon RDS 服務層提供將 [Amazon RDS 執行個體](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)併入堆疊的方法。

您也可以使用其他資料庫，例如 Amazon DynamoDB，或建立自訂 layer 以支援資料庫，例如 [MongoDB](http://www.mongodb.org/)。如需詳細資訊，請參閱[使用後端資料存放區](customizing-rds.md)。

此範例使用 MySQL layer。

**將 MySQL layer 新增至 MyStack**

1. 在 **Layers (Layer)** 頁面上，按一下 **\$1 Layer**。

1. 在 **Add Layer (新增 Layer)** 頁面上，針對 **Layer type (Layer 類型)**，選取 **MySQL**，接受預設設定，然後按一下 **Add Layer (新增 Layer)**。  
![\[Add Layer interface for MySQL with options to set 根使用者 password and apply to all instances.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gsb3.png)

**將執行個體新增至 MySQL layer**

1. 在 **Layers (Layer)** 頁面的 **MySQL** 資料列上，按一下 **Add an instance (新增執行個體)**。

1. 在 **Instances (執行個體)** 頁面上，在 **MySQL** 下，按一下 **Add an instance (新增執行個體)**。

1. 接受預設值，然後按一下 **Add instance (新增執行個體)**，但先不啟動它。

**注意**  
OpsWorks Stacks 會自動建立名為 的資料庫，在此範例中使用應用程式的簡短名稱 simplephpapp。如果您想要使用 [Chef 配方](http://docs.chef.io/recipes.html)與資料庫互動，您會需要此名稱。

# 步驟 3.2：更新 SimplePHPApp
<a name="gettingstarted-db-update"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

若要開始，您必須使用後端資料存放區的新版 SimplePHPApp。使用 OpsWorks Stacks，您可以輕鬆更新應用程式。如果您使用 Git 或 Subversion 儲存庫，每個應用程式版本都可以有單獨的儲存庫分支。範例應用程式會將使用後端資料庫之版本的應用程式存放在 Git 儲存庫的 version2 分支。您只需要更新應用程式的組態來指定新分支以及重新部署應用程式。

**更新 SimplePHPApp**

1. 

**開啟應用程式的 Edit (編輯) 頁面**

   在導覽窗格中，按一下 **Apps (應用程式)**，然後按一下 **SimplePHPApp** 資料列中 **Actions (動作)** 欄的 **edit (編輯)**。

1. 

**更新應用程式組態**

   變更下列設定。  
**Branch/Revision (分支/修訂)**  
此設定指出應用程式的儲存庫分支。第一版的 SimplePHPApp 未連線到資料庫。若要使用已啟用資料庫的應用程式版本，請將此值設定為 **version2**。  
**Document root (文件根)**  
此設定指定應用程式的根資料夾。第一版的 SimplePHPApp 使用預設設定，將 `index.php` 安裝在伺服器的標準根資料夾中 (PHP 應用程式為 `/srv/www`)。如果您在此處指定子資料夾 — 僅名稱，沒有前置 '/' —OpsWorks Stacks 會將它附加到標準資料夾路徑。SimplePHPApp 版本 2 應該在 `/srv/www/web`，因此請將 **Document root (文件根)** 設為 **web**。  
**Data source type (資料來源類型)**  
此設定會建立資料庫伺服器與應用程式的關聯。此範例使用您在上一個步驟中建立的 MySQL 執行個體，因此請將**資料來源類型**設定為 OpsWorks 和**資料庫執行個體**，設定為您在上一個步驟 **db-master1 (mysql)** 中建立的執行個體。將**資料庫名稱**保留空白； OpsWorks Stacks 將在名為 的伺服器上，以應用程式的簡短名稱 simplephpapp 建立資料庫。

   然後按一下 **Save (儲存)**，儲存新的組態。  
![\[Add App form with settings for SimplePHP application and OpsWorks data source.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gsb2.png)

1. 啟動 MySQL 執行個體。

更新應用程式後，當您啟動應用程式伺服器執行個體時， OpsWorks Stacks 會自動將新的應用程式版本部署到任何新的應用程式伺服器執行個體。不過， OpsWorks Stacks 不會自動將新的應用程式版本部署到現有的伺服器執行個體；您必須手動執行此操作，如中所述[步驟 2.4：建立和部署應用程式 - Chef 11](gettingstarted-simple-app.md)。您現在可以部署已更新的 SimplePHPApp，但在此範例中，最好再等等。

# 簡短分類：技術指南、配方和 OpsWorks Stacks 屬性
<a name="gettingstarted-db-recipes"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

您現在有應用程式和資料庫伺服器，但它們還不能使用。您仍然需要設定資料庫並設定應用程式的連線設定。 OpsWorks Stacks 不會自動處理這些任務，但支援 Chef 技術指南、配方和動態屬性。您可以實作一對配方，一個用於設定資料庫，另一個用於設定應用程式的連線設定，並讓 OpsWorks Stacks 為您執行它們。

包含必要配方的 phpapp 技術指南已實作可供使用，如果想要，您可以直接跳到[步驟 3.3：將自訂技術指南新增至 MyStack](gettingstarted-db-cookbooks.md)。如果想知道更多，本節會提供一些有關技術指南和配方的背景，說明配方的運作方式。若要查看技術指南本身，請參閱 [phpapp 技術指南](https://github.com/amazonwebservices/opsworks-example-cookbooks/tree/master/phpapp)。

**Topics**
+ [配方和屬性](#gettingstarted-db-recipes-attributes)
+ [設定資料庫](#gettingstarted-db-recipes-dbsetup)
+ [將應用程式連線到資料庫](#gettingstarted-db-recipes-appsetup)

## 配方和屬性
<a name="gettingstarted-db-recipes-attributes"></a>

Chef 配方基本上是專門在執行個體上執行任務 (例如安裝套件、建立組態檔案、執行 shell 命令等等) 的 Ruby 應用程式。相關配方的群組會組織成「技術指南」**，其也包含支援的檔案，例如建立組態檔案的範本。

OpsWorks Stacks 有一組支援內建 layer 的技術指南。您也可以使用自己的配方建立自訂技術指南，在您的執行個體上執行自訂任務。本主題提供配方的簡介，並示範如何使用它們設定資料庫以及設定應用程式的連線設定。如需技術指南和配方的詳細資訊，請參閱[技術指南和配方](workingcookbook.md)或[自訂 OpsWorks Stacks](customizing.md)。

配方通常取決於輸入資料的 Chef「屬性」**：
+ 這些屬性有部分由 Chef 定義，提供執行個體的基本資訊，例如作業系統。
+ OpsWorks Stacks 會定義一組屬性，其中包含堆疊的相關資訊，例如 layer 組態，以及已部署應用程式的相關資訊，例如應用程式儲存庫。

  您可以將[自訂 JSON](workingstacks-json.md) 指派給堆疊或部署，將自訂的屬性新增至此集合。
+ 您的技術指南也可以定義技術指南專用的屬性。

  phpapp 技術指南屬性在 `attributes/default.rb` 中定義。

如需 OpsWorks Stacks 屬性的完整清單，請參閱 [堆疊組態及部署屬性：Linux](attributes-json-linux.md)和 [內建技術指南屬性](attributes-recipes.md)。如需詳細資訊，請參閱[覆寫屬性](workingcookbook-attributes.md)。

屬性是以階層式結構組織，可以 JSON 物件表示。

您使用 Chef 節點語法將此資料併入您的應用程式，如下所示：

```
[:deploy][:simplephpapp][:database][:username]
```

`deploy` 節點有單一應用程式節點 `simplephpapp`，其包含應用程式資料庫、Git 儲存庫等等的資訊。此範例呈現資料庫使用者名稱的值，解析成 `root`。

## 設定資料庫
<a name="gettingstarted-db-recipes-dbsetup"></a>

MySQL layer 的內建設定配方會自動為名為 的應用程式建立資料庫，並使用應用程式的短名，因此在此範例中，您已有一個名為 simplephpapp 的資料庫。不過，您需要建立表格供應用程式存放其資料，以完成設定。您可以手動建立資料表，但更好的方法是實作自訂配方來處理任務，並讓 OpsWorks Stacks 為您執行。本節說明如何實作配方 `dbsetup.rb`。稍後將說明讓 OpsWorks Stacks 執行配方的程序。

若要查看儲存庫中的配方，請前往 [dbsetup.rb](https://github.com/amazonwebservices/opsworks-example-cookbooks/blob/master/phpapp/recipes/dbsetup.rb)。以下範例顯示 `dbsetup.rb` 程式碼。

`execute` 是執行指定命令的「Chef 資源」**。在此範例中，它是建立表格的 MySQL 命令。如果指定的表格已存在，`not_if` 指令會確保命令不會執行。如需 Chef 資源的詳細資訊，請參閱[關於資源和提供者](https://docs.chef.io/resource.html)。

配方使用先前討論過的節點語法，將屬性值插入命令字串。例如，以下內容會插入資料庫的使用者名稱。

```
#{deploy[:database][:username]}
```

讓我們解釋這個有點隱晦的程式碼：
+ 每次重複，`deploy` 都設為目前的應用程式節點，所以它會解析成 `[:deploy][:app_name]`。在此範例中，它解析成 `[:deploy][:simplephpapp]`。
+ 使用先前顯示的部署屬性值，整個節點會解析成 `root`。
+ 您用 \$1\$1 \$1 包裝節點，將它插入字串中。

其他大部分的節點也以類似方式解析。但 `#{node[:phpapp][:dbtable]}` 是例外，它是由自訂技術指南的屬性檔案所定義，解析成表格名稱 `urler`。因此，在 MySQL 執行個體上執行的實際命令為：

```
"/usr/bin/mysql 
    -uroot
    -pvjud1hw5v8
    simplephpapp
    -e'CREATE TABLE urler(
       id INT UNSIGNED NOT NULL AUTO_INCREMENT,
       author VARCHAR(63) NOT NULL,
       message TEXT,
       PRIMARY KEY (id))'
"
```

此命令會使用來自部署屬性的登入資料和資料庫名稱，建立有 ID、作者和訊息欄位的表格，名為 `urler`。

## 將應用程式連線到資料庫
<a name="gettingstarted-db-recipes-appsetup"></a>

第二塊拼圖是應用程式，它需要連線資訊，例如存取表格的資料庫密碼。SimplePHPApp 其實只有一個工作檔案 `app.php`，而 `index.php` 所做的只是載入 `app.php`。

`app.php` 包含處理資料庫連線的 `db-connect.php`，但此檔案不在儲存庫中。您不能事先建立 `db-connect.php`，因為它會根據特定的執行個體定義資料庫。反之，`appsetup.rb` 配方使用來自部署屬性的連線資料產生 `db-connect.php`。

若要查看儲存庫中的配方，請前往 [appsetup.rb](https://github.com/amazonwebservices/opsworks-example-cookbooks/blob/master/phpapp/recipes/appsetup.rb)。以下範例顯示 `appsetup.rb` 程式碼。

就像 一樣`dbsetup.rb`， `appsetup.rb` 會反覆運算`deploy`節點中的應用程式 - 只需再次使用 simplephpapp 即可。它會執行有 `script` 資源和 `template` 資源的程式碼區塊。

`script` 資源會安裝 [Composer](http://www.getcomposer.org)，這是 PHP 應用程式的相依性管理員。然後執行 Composer 的 `install` 命令，將範例應用程式的相依性安裝到應用程式的根目錄。

`template` 資源會產生 `db-connect.php`，並將它放在 `/srv/www/simplephpapp/current`。注意下列事項：
+ 此配方使用條件式陳述式指定檔案擁有者，這取決於執行個體的作業系統。
+ `only_if` 指令通知 Chef 只在指定目錄存在時產生範本。

`template` 資源在基本上與相關聯檔案有相同的內容和結構，但包含各種資料值的預留位置的範本上操作。`source` 參數指定範本 `db-connect.php.erb`，它在 phpapp 技術指南的 `templates/default` 目錄中，包含下列內容：

當 Chef 處理範本時，它會以範本資源中的對應變數值取代 `<%= =>` 預留位置，因此取自部署屬性。因此產生的檔案為：

# 步驟 3.3：將自訂技術指南新增至 MyStack
<a name="gettingstarted-db-cookbooks"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

您將自訂技術指南存放在儲存庫中，很類似應用程式。每個堆疊都有一個包含一組自訂技術指南的儲存庫。然後，指示 OpsWorks Stacks 在堆疊的執行個體上安裝自訂技術指南。

1. 按一下導覽窗格中的 **Stack (堆疊)** 查看目前堆疊的頁面。

1. 按一下 **Stack Settings (堆疊設定)**，然後按一下 **Edit (編輯)**。

1. 如下修改堆疊組態：
   + **使用自訂 Chef 技術指南** – **是**
   + **儲存庫類型** – **Git**
   + **儲存庫 URL** – **git://github.com/amazonwebservices/opsworks-example-cookbooks.git**

1. 按一下 **Save (儲存)** 更新堆疊組態。  
![\[Configuration options for custom Chef cookbooks with Git repository settings.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gsb6.png)

OpsWorks Stacks 接著會在堆疊的所有執行個體上安裝技術指南儲存庫的內容。如果您建立新的執行個體， OpsWorks Stacks 會自動安裝技術指南儲存庫。

**注意**  
如果您需要更新任何技術指南，或將新的技術指南新增至儲存庫，您可以這樣做，而無需接觸堆疊設定。 OpsWorks Stacks 會自動在所有新的執行個體上安裝更新的技術指南。不過， OpsWorks Stacks 不會自動在堆疊的線上執行個體上安裝更新的技術指南。您必須執行堆疊`Update Cookbooks`命令，明確指示 OpsWorks Stacks 更新技術指南。如需詳細資訊，請參閱[執行堆疊命令](workingstacks-commands.md)。

# 步驟 3.4：執行配方
<a name="gettingstarted-db-lifecycle"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

有了自訂技術指南之後，您需要在適當的執行個體上執行配方。您可以[手動執行它們](workingcookbook-manual.md)。不過，配方一般需要在執行個體生命週期的可預測點上執行，例如在執行個體開機後，或部署應用程式時。本節說明更簡單的方法：讓 OpsWorks Stacks 在適當的時間自動為您執行。

OpsWorks Stacks 支援一組[生命週期事件](workingcookbook-events.md)，可簡化執行中的配方。例如，執行個體開機完成後會發生 Setup (設定) 事件，當您部署應用程式時則會發生 Deploy (部署) 事件。每個 layer 都有一組與每個生命週期事件相關聯的內建配方。當執行個體上發生生命週期事件時，代理程式會為每個執行個體 layer 執行相關聯的配方。若要讓 OpsWorks Stacks 自動執行自訂配方，請將其新增至適當 layer 上的適當生命週期事件，代理程式會在內建配方完成後執行配方。

在此範例中，您需要`dbsetup.rb`在 MySQLinstance 和 PHP App Server 執行個體`appsetup.rb`上執行兩個配方。

**注意**  
您使用 *cookbook\$1name*::*recipe\$1name* 格式在主控台上指定配方，*recipe\$1name* 不包含 .rb 副檔名。例如，您參考 `dbsetup.rb` 為 **phpapp::dbsetup**。

**將自訂配方指派給生命週期事件**

1. 在 **Layers** 頁面上，針對 MySQL，按一下**配方**，然後按一下**編輯**。

1.  在**自訂 Chef 配方**區段中，輸入 [**phpapp::dbsetup**](gettingstarted-db-recipes.md#gettingstarted-db-recipes-dbsetup) **部署**。  
![\[Custom Chef recipes section with Repository URL and three configuration steps.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gsb6a.png)

1. 按一下 **\$1** 圖示，將配方指派給事件，然後按一下 **Save (儲存)** 儲存新的 layer 組態。

1. 返回 **Layers (Layer)** 頁面，重複此程序將 **phpapp::appsetup** 指派給 **PHP App Server (PHP 應用程式伺服器)** layer 的 **Deploy (部署)** 事件。

# 步驟 3.5：部署 SimplePHPApp 2 版
<a name="gettingstarted-db-deploy"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

最終步驟是部署新版本的 SimplePHPApp。

**部署 SimplePHPApp**

1. 在 **Apps (應用程式)** 頁面上，按一下 **SimplePHPApp** 應用程式 **Actions (動作)** 中的 **deploy (部署)**。  
![\[Apps page showing SimplePHPApp with deploy, edit, and delete options in the Actions column.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gsb6aa.png)

1. 接受預設值，然後按一下 **Deploy (部署)**。  
![\[Deploy App interface with settings for SimplePHPApp and instance selection options.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gs17a.png)

   當您在**部署****應用程式**頁面上按一下部署時，會觸發部署生命週期事件，通知客服人員執行其部署配方。根據預設，您會觸發所有堆疊的執行個體上之事件。內建的部署配方只會將應用程式部署到應用程式類型的適當執行個體，在此情況下為 PHP App Server 執行個體。不過，觸發其他執行個體上的 Deploy (部署) 事件，讓它們回應應用程式部署，通常很有用。在此情況下，您也想要觸發 MySQL 執行個體上的部署來設定資料庫。

   注意下列事項：
   + PHP App Server 執行個體上的代理程式會執行 layer 的內建配方，後面接著 `appsetup.rb`，這會設定應用程式的資料庫連線。
   + MySQL 執行個體上的代理程式不會安裝任何項目，但會執行 `dbsetup.rb`來建立 urler 資料表。

   當部署完成後，**Deployment (部署)** 頁面上的 **Status (狀態)** 會變更為 **successful (成功)**。

# 步驟 3.6：執行 SimplePHPApp
<a name="gettingstarted-db-run"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

部署狀態變更為 **successful (成功)** 後，您就可以執行新的 SimplePHPApp 版本，如下所示。

**執行 SimplePHPApp**

1. 在 **Instances (執行個體)** 頁面上，按一下在 **php-app1** 資料列中的公有 IP 地址。

   您應該會在瀏覽器中看到如下頁面。  
![\[Text input field labeled "Your Thoughts" with a "Share Your Thought" button above.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gsb7.png)

1. 按一下 **Share Your Thought (分享您的想法)**，輸入類似 **Hello world\$1** (針對 **Your Thought (您的想法)**) 和您的姓名 (針對 **Your Name (您的姓名)**)。然後按一下 **Submit Your Thought (提交您的想法)** 將訊息新增到資料庫。  
![\[Form with success message, text input fields for thought and name, and submit buttons.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/gsb8.png)

1. 按一下 **Go Back (返回)** 檢視資料庫中的所有訊息。