

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

# 應用程式資料包 (aws\$1opsworks\$1app)
<a name="data-bag-json-app"></a>

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

針對[部署事件](workingcookbook-events.md)或[執行配方堆疊命令](workingstacks-commands.md)，代表應用程式的設定。

下列範例示範如何使用 Chef 搜尋搜尋單一資料包項目及多個資料包項目，將應用程式的短名和來源 URL 寫入 Chef 日誌：

```
app = search("aws_opsworks_app").first
Chef::Log.info("********** The app's short name is '#{app['shortname']}' **********")
Chef::Log.info("********** The app's URL is '#{app['app_source']['url']}' **********")

search("aws_opsworks_app").each do |app|
  Chef::Log.info("********** The app's short name is '#{app['shortname']}' **********")
  Chef::Log.info("********** The app's URL is '#{app['app_source']['url']}' **********")
end
```


****  

|  |  |  | 
| --- |--- |--- |
| [app\$1id](#data-bag-json-app-app-id) | [app\$1source](#data-bag-json-app-app-source) | [data\$1sources](#data-bag-json-app-app-data-source) | 
| [部署](#data-bag-json-app-deploy) | [屬性](#data-bag-json-app-attributes) | [domains](#data-bag-json-app-app-domains) | 
| [enable\$1ssl](#data-bag-json-app-enable-ssl) | [環境](#data-bag-json-app-app-environment) | [name](#data-bag-json-app-app-name) | 
| [shortname](#data-bag-json-app-app-shortname) | [ssl\$1configuration](#data-bag-json-app-app-ssl-config) | [type](#data-bag-json-app-app-type) | 

**app\$1id**  <a name="data-bag-json-app-app-id"></a>
應用程式 ID (字串)。識別應用程式的 GUID。

**app\$1source**  <a name="data-bag-json-app-app-source"></a>
一組內容，指定 OpsWorks Stacks 用來從其來源控制儲存庫部署應用程式的資訊。內容會根據儲存庫類型而有所不同。    
**password**  
私有儲存庫為密碼，公有儲存庫則為 `"null"` (字串)。若為私有 S3 儲存貯體，則此內容會設為私有金鑰。  
**修訂**  
如果儲存庫有多個分支，此內容會指定該應用程式的分支或版本，例如 `"version1"` (字串)。否則會設為 `"null"`。  
**ssh\$1key**  
用來存取私有 Git 儲存庫的[部署 SSH 金鑰](workingapps-deploykeys.md)，公有儲存庫則為 `"null"` (字串)。  
**type**  
應用程式的來源位置 (字串)。有效值包含：  
+ `"archive"`
+ `"git"`
+ `"other"`
+ `"s3"`  
**url**  
應用程式來源的位置 (字串)。  
**user**  
私有儲存庫為使用者名稱，公有儲存庫則為 `"null"` (字串)。若為私有 S3 儲存貯體，此內容會設為存取金鑰。

**屬性**  <a name="data-bag-json-app-attributes"></a>
一組內容，描述目錄結構和應用程式的內容。    
**document\$1root**  <a name="data-bag-json-app-documentroot"></a>
文件樹狀結構的根目錄。定義指向文件根 (或應用程式首頁位置，例如 `home_html`) 的路徑，相對於您的部署目錄。除非指定此屬性，否則 document\$1root 預設為 `public`。`document_root` 的值開頭只能為 `a-z`、`A-Z`、`0-9`、`_` (底線) 或 `-` (連字號) 字元。

**data\$1sources**  <a name="data-bag-json-app-app-data-source"></a>
連線到應用程式資料庫所需的資訊。如果應用程式有連接的資料庫層， OpsWorks Stacks 會自動將適當的值指派給此內容。  
data\$1sources 的值為一個陣列，陣列必須使用整數位移存取，而非鍵。例如，若要存取應用程式的第一個資料來源，請使用 `app[:data_sources][0][:type]`。    
**database\$1name**  
資料庫名稱，通常是應用程式的短名 (字串)。  
**type**  
資料庫執行個體的類型，通常為 `"RdsDbInstance"` (字串)。  
**arn**  
資料庫執行個體的 Amazon Resource Name (ARN) (字串)。

**部署**  <a name="data-bag-json-app-deploy"></a>
是否應部署應用程式 (布林值)。`true` 表示應用程式應在部署生命週期事件中部署。在安裝生命週期事件中，所有應用程式的此內容將為 `true`。若要判斷哪些應用程式應在執行個體上部署，請檢查執行個體所屬的 layer。

**domains**  <a name="data-bag-json-app-app-domains"></a>
應用程式的網域清單 (字串清單)。

**enable\$1ssl**  <a name="data-bag-json-app-enable-ssl"></a>
是否啟用 SSL 支援 (布林值)。

**環境**  <a name="data-bag-json-app-app-environment"></a>
使用者針對應用程式指定之環境變數的集合。如需如何定義應用程式環境變數的詳細資訊，請參閱[新增應用程式](workingapps-creating.md)。每個內容名稱都會設為環境變數名稱，並且對應的值都會設為變數的值。

**name**  <a name="data-bag-json-app-app-name"></a>
應用程式的名稱，用於顯示用途 (字串)。

**shortname**  <a name="data-bag-json-app-app-shortname"></a>
應用程式的簡短名稱，由 Stacks 從名稱 （字串） OpsWorks 產生。短名會在內部及由配方使用。短名會做為您應用程式檔案安裝目錄的名稱使用。

**ssl\$1configuration**  <a name="data-bag-json-app-app-ssl-config"></a>  
**certificate**  
若您啟用 SSL 支援，則為應用程式的 SSL 憑證，否則為 `"null"` (字串)。  
**chain**  
若啟用 SSL，則為指定中繼憑證授權單位金鑰或用戶端身分驗證的內容 (字串)。  
**private\$1key**  
若您啟用 SSL 支援，則為應用程式的 SSL 私有金鑰，否則為 `"null"` (字串)。

**type**  <a name="data-bag-json-app-app-type"></a>
應用程式的類型，若為 Chef 12 Linux 和 Chef 12.2 Windows 堆疊，則總是會設為 `"other"` (字串)。