

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

# 連線至 Monday
<a name="connecting-to-monday"></a>

 Monday.com 是一種多樣化的工作作業系統，可簡化專案管理和團隊協作。其具有可自訂的工作流程、視覺化儀表板和自動化工具來提高生產力。使用者可以在一個整合的平台中追蹤任務、管理資源並進行有效通訊。

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

# AWS Glue 星期一的 支援
<a name="monday-support"></a>

AWS Glue 支援週一，如下所示：

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

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

**支援的 Monday API 版本**  
 v2。

# 包含用於建立和使用連線的 API 操作的政策
<a name="monday-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 主控台的使用者。

# 設定 Monday
<a name="monday-configuring"></a>

您必須先符合下列要求，才能使用 從星期一 AWS Glue 傳輸資料：

## 最低需求
<a name="monday-configuring-min-requirements"></a>
+  您擁有一個帶有電子郵件和密碼的 Monday 開發人員帳戶。如需詳細資訊，請參閱[建立新的 Monday 帳戶：](connecting-to-monday.md#monday-account-creation)。
+  您的 Monday 開發人員帳戶已啟用 API 存取。試用期內，所有可用的 Monday API 無需額外費用。試用期結束後，需要購買訂閱才能建立和存取資料。如需詳細資訊，請參閱 [Monday 的授權頁面](https://developer.monday.com/api-reference/reference/about-the-api-reference)以取得詳細資訊。

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

# 設定 Monday 連線
<a name="monday-configuring-connections"></a>

Monday 支援以下兩種類型的身分驗證機制：

1.  OAuth 身分驗證：Monday 支援 OAuth2 的 AUTHORIZATION\$1CODE 授權類型。
   +  此授權類型被視為「三條腿的」OAuth，因為其依賴將使用者重新導向至第三方授權伺服器來驗證使用者。在透過 AWS Glue 主控台建立連線時使用。預設情況下，建立連線的使用者可能會依賴 AWS Glue擁有的連線應用程式，在該應用程式中，除了 Monday 執行個體 URL 之外，他們不需要提供任何 OAuth 相關資訊。 AWS Glue 主控台會將使用者重新導向至星期一，其中使用者必須登入並允許 AWS Glue 請求的許可存取其星期一執行個體。
   +  使用者應該選擇在星期一建立自己的連線應用程式，並在透過 AWS Glue 主控台建立連線時提供自己的用戶端 ID 和用戶端秘密。在此案例中，它們仍會重新導向至星期一以登入並授權 AWS Glue 存取其資源。
   +  此授權類型會產生重新整理字符和存取字符。存取字符的作用時間為一小時，可以使用重新整理字符自動重新整理，而無需使用者互動。
   +  如需詳細資訊，請參閱[有關為 AUTHORIZATION\$1CODE OAuth 流程建立連線應用程式的文件](https://developers.Monday.com/docs/api/v1/Oauth)。

1.  自訂驗證：
   +  如需產生自訂授權所需 API 金鑰的公有 Monday 文件，請參閱 [https://developer.monday.com/api-reference/docs/authentication\$1api-token-permissions](https://developer.monday.com/api-reference/docs/authentication#api-token-permissions)。

若要設定 Monday 連線：

1.  在 中 AWS Secrets Manager，使用下列詳細資訊建立秘密。必須為 AWS Glue中的每個連線建立機密。

   1.  對於 OAuth 驗證：
      +  對於客戶管理的連線應用程式，機密應包含以 USER\$1MANAGED\$1CLIENT\$1APPLICATION\$1CLIENT\$1SECRET 作為金鑰的連線應用程式消費者機密。

   1.  對於自訂身分驗證：
      +  對於客戶管理的連線應用程式，機密應包含以 `personalAccessToken` 作為金鑰的連線應用程式消費者機密。

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

   1.  在「資料連線」下，選擇**建立連線**。

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

   1. 提供 Monday **instanceURL**。

   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.  選取身分驗證類型以連線至 Monday 
      +  對於 OAuth 驗證：提供您要連線之 Monday 的**字符 URL** 和**使用者管理的用戶端應用程式 ClientId**。
      +  對於自訂身分驗證：選取身分驗證類型 **CUSTOM** 以連線至 Monday。

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

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

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

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

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

 **先決條件** 
+  您要從中讀取的 Monday 物件。請參閱以下支援的實體表格，以檢查可用實體。

 **來源的支援實體** 

 實體清單：
+  帳戶：[https://developer.monday.com/api-reference/docs/account\$1queries](https://developer.monday.com/api-reference/docs/account#queries) 
+  電路板：[https://developer.monday.com/api-reference/docs/boards\$1queries](https://developer.monday.com/api-reference/docs/boards#queries) 
+  欄位：[https://developer.monday.com/api-reference/docs/columns\$1queries](https://developer.monday.com/api-reference/docs/columns#queries) 
+  文件：[https://developer.monday.com/api-reference/docs/docs\$1queries](https://developer.monday.com/api-reference/docs/docs#queries) 
+  文件區塊：[https://developer.monday.com/api-reference/docs/blocks\$1queries](https://developer.monday.com/api-reference/docs/blocks#queries) 
+  檔案：[https://developer.monday.com/api-reference/docs/files\$1queries](https://developer.monday.com/api-reference/docs/files#queries) 
+  資料夾：[https://developer.monday.com/api-reference/docs/folders\$1queries](https://developer.monday.com/api-reference/docs/folders#queries) 
+  群組：[https://developer.monday.com/api-reference/docs/groups\$1queries](https://developer.monday.com/api-reference/docs/groups#queries) 
+  項目：[https://developer.monday.com/api-reference/docs/items\$1queries](https://developer.monday.com/api-reference/docs/items#queries) 
+  子項目：[https://developer.monday.com/api-reference/docs/subitems\$1queries](https://developer.monday.com/api-reference/docs/subitems#queries) 
+  標籤：[https://developer.monday.com/api-reference/docs/tags-queries\$1queries](https://developer.monday.com/api-reference/docs/tags-queries#queries) 
+  團隊：[https://developer.monday.com/api-reference/docs/teams\$1queries](https://developer.monday.com/api-reference/docs/teams#queries) 
+  更新：[https://developer.monday.com/api-reference/docs/updates\$1queries](https://developer.monday.com/api-reference/docs/updates#queries) 
+  使用者：[https://developer.monday.com/api-reference/docs/users\$1queries](https://developer.monday.com/api-reference/docs/users#queries) 
+  工作區：[https://developer.monday.com/api-reference/docs/workspaces\$1queries](https://developer.monday.com/api-reference/docs/workspaces#queries) 


| 實體 | 可以篩選 | 支援限制 | 支援排序依據 | 支援選取 \$1 | 支援分區 | 
| --- | --- | --- | --- | --- | --- | 
| 帳戶 | 否 | 否 | 否 | 是 | 否 | 
| 電路板 | 是 | 是 | 否 | 是 | 否 | 
| 資料欄 | 否 | 否 | 否 | 是 | 否 | 
| 文件 | 是 | 是 | 否 | 是 | 否 | 
| 文件區塊 | 否 | 是 | 否 | 是 | 否 | 
| 檔案 | 是 | 否 | 否 | 是 | 否 | 
| Groups (群組) | 否 | 否 | 否 | 是 | 否 | 
| 項目 | 是 | 是 | 否 | 是 | 否 | 
| 子項目 | 否 | 否 | 否 | 是 | 否 | 
| Tags (標籤) | 是 | 否 | 否 | 是 | 是 | 
| 團隊 | 是 | 否 | 否 | 是 | 否 | 
| 更新 | 否 | 是 | 否 | 是 | 否 | 
| 使用者 | 是 | 是 | 否 | 是 | 否 | 
| 工作區 | 是 | 是 | 否 | 是 | 否 | 
| 資料夾 | 是 | 是 | 否 | 是 | 否 | 

 **範例** 

```
monday_read = glueContext.create_dynamic_frame.from_options(
     connection_type="monday",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "account",
         "API_VERSION": "v2"
     }
```

# Monday 連線選項參考
<a name="monday-connection-options"></a>

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

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

以下是 Monday 連接器的限制：
+  動態中繼資料回應與文件存在某些衝突，如下所述：
  +  群組、資料欄實體支援篩選操作，但其在動態中繼資料端點中不存在，因此會保留為不可篩選的實體。
  +  動態端點包含大約 15000 多行，並在單一回應中傳回所有實體的中繼資料，由於欄位平均需要 10 秒才能載入，因此在執行任務時需要額外的時間。
  +  如需 Monday 速率限制，請參閱下表。動態實體回應資料的巨大規模會導致明顯的延遲，欄位平均需要 10 秒才能載入。    
<a name="monday-rate-limit-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/monday-connector-limitations.html)

## 建立新的 Monday 帳戶：
<a name="monday-account-creation"></a>

1.  導覽至 Monday 的首頁 [https://monday.com/](https://monday.com/)，然後選擇**登入**。

1.  系統會將您重新導向至登入頁面。在頁面底部，選擇**上傳**。

1.  輸入電子郵件地址，然後選擇**繼續**。或者，您可以使用 Google 登入。

1.  輸入所需的詳細資訊，然後選擇**繼續**。

1.  完成問卷問題，並遵循步驟完成帳戶建立程序。

**註冊 OAuth 應用程式：**

1.  登入您的 monday.com 帳戶。按一下螢幕左下角的頭像 (圖片圖示)。

1.  選擇**開發人員**。

1.  選擇**建立應用程式**。

1.  完成名稱和描述的必要欄位。

1. 導覽至右側出現的 "OAuth" 區段，新增範圍，然後選擇「儲存功能」。

1.  導覽至範圍旁邊的「重新導向 URL」索引標籤，新增重新導向 URL，然後選擇「儲存功能」。

1.  在**重新導向 URL** 索引標籤下，提供應用程式的 URL。這應該是 https://\$1region-code\$1.console.aws.amazon.com/appflow/oauth。例如，如果您使用的是 `us-east-1 `，則可以新增 `https://us-east-1.console.aws.amazon.com/appflow/oauth`。

1.  應用程式現在已準備好可供使用。您可以在「基本資訊」區段中找到您的憑證。記下您的用戶端 ID 和用戶端機密字串。這些字串用於使用 AppFlow 連接器與此應用程式建立連線。

**產生個人存取字符：**

 目前，monday.com 僅提供我們的 V2 API 字符，這些字符都是個人字符。若要存取 API 字符，您可以根據使用者層級使用兩種方法之一。管理員使用者可以利用這兩種方法來取得 API 字符。成員使用者可以從「開發人員」索引標籤存取 API 字符。

 Admins - 如果您是 monday.com 帳戶的管理員使用者，可以從 "Admin" 索引標籤存取您的 API 字符，步驟如下：

1.  登入您的 monday.com 帳戶。按一下螢幕左下角的頭像 (圖片圖示)。

1.  從產生的功能表中選取「管理」(這需要您擁有管理員許可)。

1.  導覽至 "API" 區段並產生「API V2 字符」。您可以複製字符並使用其。

 開發人員 - 如果您是 monday.com 帳戶的成員使用者，可以從「開發人員」索引標籤存取您的 API 字符，步驟如下：

1.  登入您的 monday.com 帳戶。按一下螢幕左下角的頭像 (圖片圖示)。

1.  從產生的功能表中選取「開發人員」。

1.  在頂端功能表中，選擇「開發人員」下拉式功能表。在名為「我的存取字符」的下拉式功能表上，選取第一個選項。