

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

# 將應用程式連線至資料庫伺服器
<a name="workingapps-connectdb"></a>

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

您可以在[建立應用程式](workingapps-creating.md)時或稍後編輯[應用程式，將 Amazon RDS 資料庫伺服器與應用程式](workingapps-editing.md)建立關聯。然後，您的應用程式可以使用資料庫連線資訊 - 使用者名稱、密碼 ... - 來連線至資料庫伺服器。當您[部署應用程式](workingapps-deploying.md)時， OpsWorks Stacks 會以兩種方式將此資訊提供給應用程式：
+ 對於 Linux 堆疊， OpsWorks Stacks 會在每個內建應用程式伺服器執行個體上建立檔案，而此檔案包含應用程式可用來連線至資料庫伺服器的連線資料。
+ OpsWorks Stacks 包含[堆疊組態中的連線資訊，以及安裝在每個執行個體上的部署屬性](workingcookbook-json.md)。

  您可以實作自訂配方以從這些屬性中擷取連線資訊，並將它放入您慣用格式的檔案中。如需詳細資訊，請參閱[傳遞資料到應用程式](apps-data.md)。

**重要**  
對於 Linux 堆疊，如果您想要將 Amazon RDS 服務層與應用程式建立關聯，則必須將適當的驅動程式套件新增至關聯的應用程式伺服器層，如下所示：  
按一下導覽窗格中的 **Layers (Layer)**，然後開啟應用程式伺服器的 **Recipes (配方)** 標籤。
按一下 **Edit (編輯)**，然後將適當的驅動程式套件新增至 **OS Packages (OS 套件)**。例如，如果 layer 包含 Amazon Linux 執行個體，則您應該指定 `mysql`；如果 layer 包含 Ubuntu 執行個體，則應該指定 `mysql-client`。
儲存變更，並重新部署應用程式。

## 使用自訂配方
<a name="workingapps-connectdb-custom"></a>

您可以實作自訂配方以從應用程式的 [`deploy` 屬性](workingcookbook-json.md#workingcookbook-json-deploy)中擷取連線資料，並將它儲存為應用程式可讀取的形式 (例如 YAML 檔案)。

當您[建立應用程式](workingapps-creating.md)或稍後[編輯應用程式](workingapps-editing.md)時，可以將資料庫伺服器連接至應用程式。當您部署應用程式時， OpsWorks Stacks 會在包含資料庫連線資訊的每個執行個體上安裝[堆疊組態和部署屬性](workingcookbook-json.md)。您的應用程式接著可以擷取適當的屬性。詳細資訊取決於您使用 Linux 還是 Windows 堆疊。

### 連線至 Linux 堆疊的資料庫伺服器
<a name="w2ab1c14c57c19c11b6"></a>

對於 Linux 堆疊，[堆疊組態和部署屬性的](workingcookbook-json.md) `deploy` 命名空間包括每個已部署應用程式的屬性 (命名為應用程式的簡短名稱)。當您將資料庫伺服器連接至應用程式時， OpsWorks Stacks 會將連線資訊填入應用程式的`[:database]`屬性，並針對每個後續部署將其安裝在堆疊的執行個體上。屬性值由使用者所提供或由 OpsWorks Stacks 所產生。

**注意**  
OpsWorks Stacks 可讓您將資料庫伺服器連接到多個應用程式，但每個應用程式只能有一個連接的資料庫伺服器。如果您想要將應用程式連線至多部資料庫伺服器，則請將其中一部伺服器連接至應用程式，並在應用程式的 `deploy` 屬性中使用此資訊來連線至該伺服器。使用自訂 JSON 將其他資料庫伺服器的連線資訊傳遞給應用程式。如需詳細資訊，請參閱[傳遞資料到應用程式](apps-data.md)。

應用程式可以使用執行個體之 `deploy` 屬性中的連線資訊來連線至資料庫。不過，應用程式無法直接存取該資訊，只有配方可以存取`deploy`屬性。您可以實作自訂配方來解決此問題，而自訂配方會擷取 `deploy` 屬性中的連線資訊，並將它放入應用程式可讀取的檔案中。