

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

# 連線至 Productboard
<a name="connecting-to-productboard"></a>

Productboard 是產品管理系統，可協助產品團隊更快地將正確的產品推向市場。超過 3,000 家以產品為主導的現代公司 (例如 Zendesk、UiPath 和 Microsoft)，使用 Productboard 來了解使用者的真實需求、排定後續建置內容的優先順序，並凝聚團隊共識，圍繞藍圖協同發力。

**Topics**
+ [AWS Glue 支援 Productboard](productboard-support.md)
+ [包含用於建立和使用連線的 API 操作的政策](productboard-configuring-iam-permissions.md)
+ [設定 Productboard](productboard-configuring.md)
+ [設定 Productboard 連線](productboard-configuring-connections.md)
+ [從 Productboard 實體中讀取](productboard-reading-from-entities.md)
+ [Productboard 連線選項](productboard-connection-options.md)
+ [建立 Productboard 帳戶](productboard-create-account.md)
+ [限制](productboard-connector-limitations.md)

# AWS Glue 支援 Productboard
<a name="productboard-support"></a>

AWS Glue 支援 Productboard，如下所示：

**支援作為來源？**  
是。您可以使用 AWS Glue ETL 任務從 Productboard 查詢資料。

**支援作為目標？**  
否。

**支援的 Productboard API 版本**  
 v1 

# 包含用於建立和使用連線的 API 操作的政策
<a name="productboard-configuring-iam-permissions"></a>

下列範例政策說明建立和使用 連線所需的 AWS 許可。如果您要建立新角色，請建立包含下列項目的政策：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

如果不想使用上述方法，可選擇使用下列受管 IAM 政策：
+  [ AWSGlueServiceRole ](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole) – 准許存取各種 AWS Glue 程序代表您執行所需的資源。這些資源包括 AWS Glue、Amazon S3、IAM、CloudWatch Logs 和 Amazon EC2。如果您遵循此政策中指定資源的命名慣例，則 AWS Glue 程序具有必要的許可。此政策通常會連接至定義編目程式、工作和開發端點時所指定的角色。
+  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess) – 當連接政策的身分使用 AWS 管理主控台時，授予對 AWS Glue 資源的完整存取權。如果您依照此政策中指定的資源命名慣例，使用者就能擁有完整的主控台功能。此政策通常連接到 AWS Glue 主控台的使用者。

# 設定 Productboard
<a name="productboard-configuring"></a>

您必須先符合下列要求，才能使用 從 Productboard AWS Glue 傳輸：

## 最低需求
<a name="productboard-configuring-min-requirements"></a>
+ 您擁有一個帶有電子郵件和密碼的 Productboard 帳戶。如需有關建立帳戶的詳細資訊，請參閱[建立 Productboard 帳戶](productboard-create-account.md)。
+  您必須使用 服務存取建立 AWS 帳戶 AWS Glue。
+ 您擁有 Productboard 帳戶的身分驗證詳細資訊 - 如果想要使用自訂身分驗證，則為 JWT 字符，如果想要使用 OAuth2.0，則為用戶端 ID 和機密。
+ 如果使用者想要使用 `OAuth2.0`，請遵循[如何透過 OAuth2 與 Productboard 整合 - 開發人員文件](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation)的說明，[向 Productboard 註冊應用程式](https://app.productboard.com/oauth2/applications/new)並設定應用程式。

如果您符合這些要求，就可以 AWS Glue 連線到您的 Productboard 帳戶。對於一般連線，不需要在 Productboard 中執行任何其他操作。

# 設定 Productboard 連線
<a name="productboard-configuring-connections"></a>

 

Productboard 支援自訂身分驗證和 `OAuth2.0`。對於 `OAuth2.0`，Productboard 支援 `AUTHORIZATION_CODE` 授權類型。
+ 此授權類型被視為「三條腿的」`OAuth`，因為其依賴將使用者重新導向至第三方授權伺服器來驗證使用者。在透過 AWS Glue 主控台建立連線時使用。根據預設，建立連線的使用者可能會依賴 AWS Glue 擁有的連線應用程式，除了其產品面板用戶端 ID 和用戶端秘密之外，不需要提供任何`OAuth`相關資訊。 AWS Glue 主控台會將使用者重新導向至 Productboard，使用者必須在其中登入 AWS Glue ，並允許請求的許可存取其 Productboard 執行個體。
+ 使用者仍然可以選擇在 Productboard 中建立自己的連線應用程式，並在透過 AWS Glue 主控台建立連線時提供自己的用戶端 ID 和用戶端秘密。在此案例中，它們仍會重新導向至 Productboard 以登入並授權 AWS Glue 存取其資源。
+ 此授權類型會產生重新整理字符和存取字符。存取字符是短期存留的，可以使用重新整理字符自動重新整理，而無需使用者互動。
+ 如需有關為 `AUTHORIZATION_CODE OAuth` 流程建立連線應用程式的公有 Productboard 文件，請參閱[如何透過 OAuth2 與 Productboard 整合 - 開發人員文件](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation)。

若要設定 Productboard 連線：

1. 在 AWS Secrets Manager 中，建立包含下列詳細資訊的秘密：
   + 對於 `OAuth` 驗證 – 針對客戶管理的連線應用程式：機密應包含以 `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` 作為金鑰的連線應用程式消費者機密。
   + 對於 `Custom auth` – 針對客戶管理的連線應用程式：機密應包含以 `access_token` 作為金鑰的連線應用程式 `JWT token`。
**注意**  
必須在 AWS Glue中為每個連線建立機密。

1. 在 中 AWS Glue Studio，依照下列步驟在 **Data Connections** 下建立連線：

   1. 選取**資料來源**時，請選取 Productboard。

   1. 選取 AWS Glue 可擔任的 IAM 角色，並具有下列動作的許可：

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. 選取身分驗證類型以連線至資料來源：
      + 對于 `OAuth` 驗證 – 提供 Productboard 應用程式的 `Token URL` 和 `User Managed Client Application ClientId`。

   1. 選取您要用於此連線`secretName`的 AWS Glue ，以放置字符。

   1.  如果想要使用您的網路，請選取網路選項。

1. 授予與您的 AWS Glue 任務相關聯的 IAM 角色讀取 的許可`secretName`。

1. 在您的 AWS Glue 任務組態中，提供 `connectionName`做為其他網路連線。

# 從 Productboard 實體中讀取
<a name="productboard-reading-from-entities"></a>

 **先決條件** 

您要從中讀取的 Productboard 物件。請參閱以下支援的實體表格，以檢查可用實體。

 **支援的實體** 
+ [濫用報告](https://productboard.com/developer/marketing/api/campaign-abuse/)
+ [自動化](https://productboard.com/developer/marketing/api/automation/list-automations/)
+ [行銷活動](https://productboard.com/developer/marketing/api/campaigns/list-campaigns/)
+ [按一下詳細資訊](https://productboard.com/developer/marketing/api/link-clickers/)
+ [清單](https://productboard.com/developer/marketing/api/link-clickers/)
+ [成員](https://productboard.com/developer/marketing/api/list-segment-members/)
+ [公開的詳細資訊](https://productboard.com/developer/marketing/api/list-members/)
+ [客群](https://productboard.com/developer/marketing/api/list-segments/)
+ [存放](https://productboard.com/developer/marketing/api/ecommerce-stores/list-stores/)
+ [已取消訂閱](https://productboard.com/developer/marketing/api/unsub-reports/)


| 實體 | 可以篩選 | 支援限制 | 支援排序依據 | 支援選取 \$1 | 支援分區 | 
| --- | --- | --- | --- | --- | --- | 
|  功能  | 是 | 是 | 否 | 是 | 是 | 
|  元件  | 否 | 是 | 否 | 是 | 否 | 
|  產品  | 否 | 是 | 否 | 是 | 否 | 
|  功能狀態  | 否 | 是 | 否 | 是 | 是 | 
|  自訂欄位定義  | 否 | 是 | 否 | 是 | 否 | 
|  自訂欄位值  | 是 | 是 | 否 | 是 | 否 | 

 **範例** 

```
Productboard_read = glueContext.create_dynamic_frame.from_options(
    connection_type="Productboard",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "feature",
        "API_VERSION": "1"
    }
```

 **Productboard 實體和欄位詳細資訊** 
+ [功能](https://developer.productboard.com/#tag/features)
+ [元件](https://developer.productboard.com/#tag/components)
+ [功能狀態](https://developer.productboard.com/#tag/statuses)
+ [產品](https://developer.productboard.com/#tag/products)
+ [自訂欄位定義](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFields)
+ [自訂欄位值](https://developer.productboard.com/#tag/hierarchyEntitiesCustomFieldsValues)

# Productboard 連線選項
<a name="productboard-connection-options"></a>

以下是 Productboard 的連線選項：
+  `ENTITY_NAME`(String) - (必要) 用於讀取/寫入。Productboard 中物件的名稱。
+ `API_VERSION`(String) - (必要) 用於讀取。您要使用的 Productboard Engage Rest API 版本。例如：3.0。
+ `SELECTED_FIELDS`(List<String>) - 預設：empty(SELECT \$1)。用於讀取。您要為物件選取的資料欄。
+ `FILTER_PREDICATE`(String) - 預設：空白。用於讀取。其應該為 Spark SQL 格式。
+ `QUERY`(String) - 預設：空白。用於讀取。完整的 Spark SQL 查詢。

# 建立 Productboard 帳戶
<a name="productboard-create-account"></a>

1. 導覽至 [Productboard 註冊頁面](https://app.productboard.com/)，輸入電子郵件 ID 和密碼，然後選擇**登入**。

1. 在**帳戶名稱**欄位中，輸入 Productboard 帳戶的名稱，然後選取**我同意隱私權政策**核取方塊。

1. 在**現在建立工作區**頁面的**工作區 URL** 欄位中，輸入新工作區的 URL。然後選擇**繼續**前往下一頁，並提供剩餘的詳細資訊。

   這會建立試用帳戶。試用帳戶可免費使用 15 天。試用期到期後，可以購買付費計劃。請記下您的電子郵件地址、密碼和工作區 URL。您將來需要此資訊來存取帳戶。」

**註冊 `OAuth2.0` 應用程式**

1. 導覽至 [Productboard 登入頁面](https://login.productboard.com/?locale=en)，輸入電子郵件 ID 和密碼，然後選擇**登入**。

1. 選取右上角的**使用者**圖示，然後從下拉式功能表中選擇**帳戶和帳單**。

1. 選取**額外項目**，然後從下拉式功能表中選擇**已註冊的應用程式**。

1. 查找並選擇**註冊應用程式**。

1. 輸入下列詳細資訊：
   + **應用程式名稱** – 應用程式的名稱。
   + **公司/組織** – 公司或組織的名稱。
   + **應用程式網站** – 應用程式的網站。
   + **重新導向 URI** – 重新導向 URI 模式是 URI 路徑 (或以逗號分隔的路徑清單)，Productboard 可以在登入流程完成時重新導向到該路徑 (如果請求)。例如 `https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`

1. 選擇**建立**。

1. **用戶端 ID** 和**用戶端機密**現在可見。複製並儲存在安全位置。然後，選擇**完成**。
**注意**  
「用戶端 ID」和「用戶端機密」字串是在使用 AppFlow 或 AWS Glue時用來建立此連接器連線的憑證。

**擷取 CustomAuth 憑證**

1. 導覽至 [Productboard 登入頁面](https://app.productboard.com/)，輸入電子郵件 ID 和密碼，然後選擇**登入**。

   您會被重新導向至首頁。

1. 在首頁中，導覽至**工作區設定** > **整合** > **公有 API** > **存取字符**。
**注意**  
如果**公有 API** 區段不可見，您的帳戶可能位於基礎計劃中。存取 API 字符至少需要專業計劃。計劃功能和名稱可能會有所變更。如需有關套件的詳細資訊，請參閱 [Productboard 定價](https://www.productboard.com/pricing/)。

1. 選擇 **＋** 以產生新字符，並確保安全存放以供日後參考。

**建立 `OAuth2.0` 憑證**

若要使用 Productboard 連接器進行 `OAuth2.0` 身分驗證，您需要在 Productboard 平台上註冊應用程式，並產生 `Client ID` 和 `Client Secret`。

1. 導覽至 [Productboard 登入頁面](https://app.productboard.com/)，輸入電子郵件 ID 和密碼，然後選擇**登入**。

1. 若要向 Productboard 帳戶註冊新的 OAuth2 應用程式，請導覽至 [Producboard](to register new OAuth2 application with your Productboard account) 頁面。

1. 完成必要欄位，並針對要存取的每個實體選取必要的範圍。
**注意**  
您已選擇下列四個範圍，六個支援的實體需要這些範圍。

1. **重新導向 URL** 必須具有下列格式：`https://ap-southeast-2\\.console\\.aws\\.amazon\\.com`
**注意**  
Appflow 重新導向 URL 可能會有所變更。一旦可用，請更新 AWS Glue 平台URLs。

1. **用戶端 ID** 和**用戶端機密**現在可見。複製並儲存在安全位置。

1. 遵循[如何透過 OAuth2 與 Productboard 整合](https://developer.productboard.com/docs/how-to-integrate-with-productboard-via-oauth2-developer-documentation)開發人員文件中的步驟來設定和驗證 `OAuth2`。

# 限制
<a name="productboard-connector-limitations"></a>

以下是 Productboard 連接器的限制：
+ Productboard 不支援欄位型或記錄型分區。