

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

# 在 AWS Device Farm 的裝置集區中選取私有裝置
<a name="selecting-private-devices"></a>

若要在測試執行中使用私有裝置，您可以建立選取私有裝置的裝置集區。裝置集區可讓您主要透過三種類型的裝置集區規則來選取私有裝置：

1. 以裝置 ARN 為基礎的規則

1. 以裝置執行個體標籤為基礎的規則

1. 以裝置執行個體 ARN 為基礎的規則

在下列各節中，每個規則類型及其使用案例都會詳細說明。您可以使用 Device Farm 主控台、 AWS 命令列界面 (AWS CLI) 或 Device Farm API，使用這些規則建立或修改具有私有裝置的裝置集區。

**Topics**
+ [裝置 ARN](#device-arn-rules)
+ [裝置執行個體標籤](#device-instance-labels-rules)
+ [執行個體 ARN](#instance-arn-rules)
+ [使用私有裝置建立私有裝置集區 （主控台）](#create-new-device-pool)
+ [使用私有裝置建立私有裝置集區 (AWS CLI)](#how-to-create-device-pool-cli-private-devices)
+ [使用私有裝置 (API) 建立私有裝置集區](#how-to-create-device-pool-api-private-devices)

## 裝置 ARN
<a name="device-arn-rules"></a>

裝置 ARN 是代表裝置類型的識別符，而不是任何特定的實體裝置執行個體。裝置類型由下列屬性定義：
+ 裝置機群 ID
+ 裝置 OEM
+ 裝置型號
+ 裝置作業系統版本
+ 裝置的狀態，指出裝置是否已根目錄

許多實體裝置執行個體可由單一裝置類型表示，其中該類型的每個執行個體都有這些屬性的相同值。例如，如果您的私有機群中有三個 iOS 版本 *16.1.0* 上的 *Apple iPhone 13* 裝置，則每個裝置都會共用相同的裝置 ARN。如果從具有這些相同屬性的機群新增或移除任何裝置，裝置 ARN 會繼續代表該裝置類型機群中任何可用的裝置。

裝置 ARN 是最強大的裝置集區選擇私有裝置的方式，因為它允許裝置集區繼續選擇裝置，無論您在任何特定時間部署的特定裝置執行個體為何。個別私有裝置執行個體可能會遇到硬體故障，提示 Device Farm 自動將其取代為相同裝置類型的新工作執行個體。在這些情況下，裝置 ARN 規則可確保您的裝置集區可以在發生硬體故障時繼續選取裝置。

當您針對裝置集區中的私有裝置使用裝置 ARN 規則，並排程使用該集區的測試執行時，Device Farm 會自動檢查哪些私有裝置執行個體是由該裝置 ARN 表示。在目前可用的執行個體中，其中一個將被指派執行您的測試。如果目前沒有可用的執行個體，Device Farm 會等待該裝置 ARN 的第一個可用執行個體變成可用，並指派它來執行您的測試。

## 裝置執行個體標籤
<a name="device-instance-labels-rules"></a>

裝置執行個體標籤是文字識別符，可作為裝置執行個體的中繼資料附加。您可以將多個標籤連接到每個裝置執行個體，並將相同的標籤連接到多個裝置執行個體。如需從裝置執行個體新增、修改或移除裝置標籤的詳細資訊，請參閱[管理私有裝置](https://docs.aws.amazon.com/devicefarm/latest/developerguide/managing-private-devices.html)。

裝置執行個體標籤可以是為裝置集區選取私有裝置的強大方式，因為如果您有多個裝置執行個體具有相同的標籤，則允許裝置集區從其中任一個選取以供測試。如果裝置 ARN 不是適合您使用案例的良好規則 （例如，如果您想要從多個裝置類型的裝置中選取，或者如果您想要從裝置類型的所有裝置子集中選取），則裝置執行個體標籤可讓您為裝置集區選取更精細的多個裝置。個別私有裝置執行個體可能會遇到硬體故障，提示 Device Farm 自動將其取代為相同裝置類型的新工作執行個體。在這些情況下，替換裝置執行個體不會保留替換裝置的任何執行個體標籤中繼資料。因此，如果您將相同的裝置執行個體標籤套用至多個裝置執行個體，則裝置執行個體標籤規則可確保您的裝置集區可在發生硬體故障時繼續選取裝置執行個體。

當您針對裝置集區中的私有裝置使用裝置執行個體標籤規則，並排程使用該集區執行測試時，Device Farm 會自動檢查哪些私有裝置執行個體是由該裝置執行個體標籤表示，而在這些執行個體中，隨機選取一個可用於執行測試的執行個體。如果沒有可用，Device Farm 會隨機選取任何具有裝置執行個體標籤的裝置執行個體，以執行您的測試，並在測試可用時將測試排入佇列。

## 執行個體 ARN
<a name="instance-arn-rules"></a>

裝置執行個體 ARN 是識別符，代表部署在私有機群中的實體裸機裝置執行個體。例如，如果您在私有機群的 OS *15.0.0 上有三個 iPhone 13* 裝置，而每個裝置都會共用相同的裝置 ARN，則每個裝置也會有自己的執行個體 ARN，僅代表該執行個體。 **

裝置執行個體 ARN 是為裝置集區選取私有裝置最不穩健的方式，只有在裝置 ARNs 和裝置執行個體標籤不符合您的使用案例時才建議使用。裝置執行個體 ARNs 通常用作裝置集區的規則，當特定裝置執行個體以唯一且特定的方式設定為測試的先決條件，且如果在測試執行之前需要已知和驗證該組態。個別私有裝置執行個體可能會遇到硬體故障，提示 Device Farm 自動將其取代為相同裝置類型的新工作執行個體。在這些情況下，替換裝置執行個體將具有與替換裝置不同的裝置執行個體 ARN。因此，如果您依賴裝置集區的裝置執行個體 ARNs，則需要手動將裝置集區的規則定義從使用舊的 ARN 變更為使用新的 ARN。如果您需要手動預先設定裝置進行測試，則這可能是有效的工作流程 （相較於裝置 ARNs)。對於大規模測試，建議嘗試調整這些使用案例以使用裝置執行個體標籤，如果可能，請預先設定多個裝置執行個體進行測試。

當您將裝置執行個體 ARN 規則用於裝置集區中的私有裝置，並使用該集區排程測試執行時，Device Farm 會自動將該測試指派給該裝置執行個體。如果該裝置執行個體無法使用，則 Device Farm 會在裝置可用時將測試排入佇列。

## 使用私有裝置建立私有裝置集區 （主控台）
<a name="create-new-device-pool"></a>

建立測試執行時，您可以為測試執行建立一個裝置集區，並確保該集區僅包含您的私有裝置。

**注意**  
在主控台中使用私有裝置建立裝置集區時，您只能使用三個可用規則中的任何一個來選取私有裝置。如果您想要建立包含私有裝置多種類型規則的裝置集區 （例如，包含裝置 ARNs 和裝置執行個體 ARNs 規則的裝置集區），則需要透過 CLI 或 API 建立集區。

1. 在 https：//[https://console.aws.amazon.com/devicefarm/](https://console.aws.amazon.com/devicefarm/) 開啟 Device Farm 主控台。

1. 在 Device Farm 導覽面板上，選擇**行動裝置測試**，然後選擇**專案**。

1. 從清單中選擇現有的專案，或建立新的專案。若要建立新專案，請選擇**新增專案**，輸入專案的名稱，然後選擇**提交**。

1. 選擇**專案設定**，然後導覽至**裝置集區**索引標籤。

1. 選擇**建立裝置集區**，然後輸入裝置集區的名稱和選用描述。

   1. 若要為裝置集區使用裝置 ARN 規則，請選擇**建立靜態裝置集區**，然後從清單中選擇您想要在裝置集區中使用的特定裝置類型。請勿**僅選取私有裝置執行個體**，因為此選項會導致使用裝置執行個體 ARN 規則 （而非裝置 ARN 規則） 建立裝置集區。  
![\[Device selection method options for creating a static or dynamic device pool.\]](http://docs.aws.amazon.com/zh_tw/devicefarm/latest/developerguide/images/aws-device-farm-create-new-device-pool-private-devices.png)

   1. 若要使用裝置集區的裝置執行個體標籤規則，請選擇**建立動態裝置集區**。然後，針對您想要在裝置集區中使用的每個標籤，選擇**新增規則**。針對每個規則，選擇**執行個體標籤**做為 `Field`，選擇**包含**做為 `Operator`，然後將您想要的裝置執行個體標籤指定為 `Value`。  
![\[Device pool creation interface with dynamic selection method and attribute filter options.\]](http://docs.aws.amazon.com/zh_tw/devicefarm/latest/developerguide/images/aws-device-farm-create-new-device-pool-private-devices-add-rule.png)

   1. 若要為裝置集區使用裝置執行個體 ARN 規則，請選擇**建立靜態裝置集**區，然後選取**私有裝置執行個體，僅**將裝置清單限制為 Device Farm 與您 AWS 帳戶相關聯的私有裝置執行個體。  
![\[Device selection options for creating a static device pool with private instances.\]](http://docs.aws.amazon.com/zh_tw/devicefarm/latest/developerguide/images/aws-device-farm-create-new-device-pool-private-device-instance-only.png)

1. 選擇**建立**。

## 使用私有裝置建立私有裝置集區 (AWS CLI)
<a name="how-to-create-device-pool-cli-private-devices"></a>
+ 執行 [https://docs.aws.amazon.com/cli/latest/reference/devicefarm/create-device-pool.html](https://docs.aws.amazon.com/cli/latest/reference/devicefarm/create-device-pool.html) 命令。

如需搭配 使用 Device Farm 的詳細資訊 AWS CLI，請參閱 [AWS CLI 參考](cli-ref.md)。

## 使用私有裝置 (API) 建立私有裝置集區
<a name="how-to-create-device-pool-api-private-devices"></a>
+ 呼叫 [https://docs.aws.amazon.com/devicefarm/latest/APIReference/API_CreateDevicePool.html](https://docs.aws.amazon.com/devicefarm/latest/APIReference/API_CreateDevicePool.html) API。

如需使用 Device Farm API 的詳細資訊，請參閱 [自動化Device Farm](api-ref.md)。