

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

# 連線至 Jira Cloud
<a name="connecting-to-data-jira-cloud"></a>

Jira Cloud 是由 Atlassian 開發的平台。平台包含問題追蹤產品，可協助團隊規劃和追蹤敏捷專案。身為 Jira Cloud 使用者，您的帳戶包含專案的資料，例如問題、工作流程和事件。您可以使用 AWS Glue 將 Jira Cloud 資料傳輸至特定 AWS 服務或其他支援的應用程式。

**Topics**
+ [AWS Glue 支援 Jira Cloud](jira-cloud-support.md)
+ [包含用於建立和使用連線的 API 操作的政策](jira-cloud-configuring-iam-permissions.md)
+ [設定 Jira Cloud](jira-cloud-configuring.md)
+ [設定 Jira Cloud 連線](jira-cloud-configuring-connections.md)
+ [從 Jira Cloud 實體中讀取](jira-cloud-reading-from-entities.md)
+ [Jira Cloud 連線選項](jira-cloud-connection-options.md)
+ [Jira Cloud 連接器的限制和備註](jira-cloud-connector-limitations.md)

# AWS Glue 支援 Jira Cloud
<a name="jira-cloud-support"></a>

AWS Glue 支援 Jira Cloud，如下所示：

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

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

**支援的 Jira Cloud API 版本**  
支援下列 Jira Cloud API 版本：
+ v3

如需特定版本的實體支援，請參閱 [從 Jira Cloud 實體中讀取](jira-cloud-reading-from-entities.md)。

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

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

------
#### [ 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 主控台的使用者。

# 設定 Jira Cloud
<a name="jira-cloud-configuring"></a>

您必須先符合下列要求，才能使用 AWS Glue 將資料從 Jira Cloud 傳輸到支援的目的地：

## 最低需求
<a name="jira-cloud-configuring-min-requirements"></a>

以下是最低要求：
+ 您有一個 Atlassian 帳戶，可以在 Jira Cloud 中使用 Jira 軟體產品。如需詳細資訊，請參閱[建立 Jira Cloud 帳戶](#jira-cloud-configuring-creating-jira-cloud-account)。
+ 您必須建立具有服務存取權 AWS 的帳戶 AWS Glue。
+ 此應用程式提供用戶端登入資料，在對您的帳戶進行驗證呼叫時， AWS Glue 會使用 安全地存取您的資料。如需詳細資訊，請參閱 Atlassian Developer 文件中的[啟用 OAuth 2.0 (3LO)](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#enabling-oauth-2-0--3lo-)。

如果您符合這些要求，就可以 AWS Glue 連線到 Jira Cloud 帳戶。

## 建立 Jira Cloud 帳戶
<a name="jira-cloud-configuring-creating-jira-cloud-account"></a>

若要建立 Jira Cloud 帳戶：

1. 導覽至 [Atlassian 註冊 URL](https://id.atlassian.com/signup)。

1. 輸入您的工作電子郵件和名稱，然後選擇**同意**。您會收到驗證電子郵件。

1. 驗證電子郵件後，可以建立密碼，然後選擇**註冊**。

1. 輸入名稱和密碼，然後選擇**註冊**。

1. 系統會將您重新導向至您需要輸入網站的頁面。輸入網站名稱，並選擇**同意**。

Atlassian Cloud 網站啟動之後，就可以根據專案類型偏好設定回答幾個問題來設定 Jira。

若要登入現有帳戶：

1. 導覽至 [Atlassian 登入 URL](https://id.atlassian.com/login) 並輸入憑證。

1. 輸入電子郵件和密碼，然後按一下**登入**。系統會重新導向至 Jira 儀表板。

## 在 Jira Cloud 中建立應用程式
<a name="jira-cloud-configuring-creating-jira-cloud-app"></a>

若要在 Jira Cloud 中建立應用程式，並從受管用戶端應用程式中獲取用戶端 ID 和用戶端機密：

1. 導覽至 [Jira Cloud URL](https://id.atlassian.com/login) 並輸入憑證。

1. 選擇**建立**並選取 **OAuth 2.0 整合**選項。

1. 輸入應用程式名稱，選中 **T&C**，然後選擇**建立**。

1. 導覽至左側功能表中的**發布**區段，然後選擇**編輯**。

1. 在**編輯發布控制項**區段中：

   1. 選取**發布狀態**為**共用**。

   1. 輸入廠商名稱。

   1. 輸入**隱私權政策**的 URL。例如，https://docs.aws.amazon.com/glue/latest/dg/security-iam-awsmanpol.html

   1. 輸入**服務條款**的 URL (選用)。

   1. 輸入**客戶支援聯絡人**的 URL (選用)。

   1. 從**個人資料宣告**中選取「是/否」，然後選擇**儲存變更**。

1. 導覽至各自應用程式左側功能表中的**許可**。

1. 對於 **Jira API**，選擇**新增**。新增之後，選擇**組態**選項。

1. 在**傳統範圍** > **Jira 平台 REST API** 區段下，選擇**編輯範圍**並檢查所有範圍。按一下 **Save (儲存)**。

1. 在**精細範圍**下，選擇**編輯範圍**，然後選取下列範圍：

1. 向下捲動並查找範圍。在標題「CRM」和「標準」下，必須選取兩種類型的範圍。

1. 新增下列範圍：

   ```
   read:application-role:jira
   read:audit-log:jira
   read:avatar:jira
   read:field:jira
   read:group:jira
   read:instance-configuration:jira
   read:issue-details:jira
   read:issue-event:jira
   read:issue-link-type:jira
   read:issue-meta:jira
   read:issue-security-level:jira
   read:issue-security-scheme:jira
   read:issue-type-scheme:jira
   read:issue-type-screen-scheme:jira
   read:issue-type:jira
   read:issue.time-tracking:jira
   read:label:jira
   read:notification-scheme:jira
   read:permission:jira
   read:priority:jira
   read:project:jira
   read:project-category:jira
   read:project-role:jira
   read:project-type:jira
   read:project-version:jira
   read:project.component:jir
   read:project.property:jira
   read:resolution:jira
   read:screen:jira
   read:status:jira
   read:user:jira
   read:workflow-scheme:jira
   read:workflow:jira
   read:field-configuration:jira
   read:issue-type-hierarchy:jira
   read:webhook:jira
   ```

1. 導覽至左側功能表中的**身分驗證**，然後選擇**新增**。

1. 輸入**回呼 URL**，例如 https://us-east-1.console.aws.amazon.com/gluestudio/oauth

1. 導覽至左側功能表中的**設定**，向下捲動以取得**身分驗證**詳細資訊。記下用戶端 ID 和機密。

# 設定 Jira Cloud 連線
<a name="jira-cloud-configuring-connections"></a>

Jira Cloud 支援 OAuth2 的 AUTHORIZATION\$1CODE 授權類型。
+ 此授權類型被視為「三條腿的」OAuth，因為其依賴將使用者重新導向至第三方授權伺服器來驗證使用者。透過 AWS Glue 主控台建立連線時，會使用它。 AWS Glue 主控台會將使用者重新導向至 Jira Cloud，其中使用者必須登入並允許 AWS Glue 請求的許可存取其 Jira Cloud 執行個體。
+ 使用者仍然可以選擇在 Jira Cloud 中建立自己的連線應用程式，並在透過 AWS Glue 主控台建立連線時提供自己的用戶端 ID 和用戶端秘密。在此案例中，它們仍會重新導向至 Jira Cloud 以登入並授權 AWS Glue 存取其資源。
+ 此授權類型會產生重新整理字符和存取字符。存取字符是短期存留的，可以使用重新整理字符自動重新整理，而無需使用者互動。
+ 如需有關建立授權碼 OAuth 流程之連線應用程式的公有 Jira Cloud 文件，請參閱[啟用 OAuth 2.0 (3LO)](https://developer.atlassian.com/cloud/jira/platform/oauth-2-3lo-apps/#enabling-oauth-2-0--3lo-)。

若要設定 Jira Cloud 連線：

1. 在 AWS Secrets Manager 中，建立包含下列詳細資訊的秘密：

   1. 對於客戶管理的連線應用程式，機密應包含以 `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` 作為金鑰的連線應用程式消費者機密。

   1. 注意：必須在 AWS Glue中建立連線機密。

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

   1. 選取**連線類型**時，請選取 Jira Cloud。

   1. 提供 Jira Cloud 環境。

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

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

****  

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

------

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

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

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

# 從 Jira Cloud 實體中讀取
<a name="jira-cloud-reading-from-entities"></a>

**必要條件**

您想要從中讀取的 Jira Cloud 物件。需要物件名稱，例如稽核記錄或問題。下表顯示支援的實體。

**來源的支援實體**：


| 實體 | 可以篩選 | 支援限制 | 支援排序依據 | 支援選取 \$1 | 支援分區 | 
| --- | --- | --- | --- | --- | --- | 
| 稽核記錄 | 是 | 是 | 否 | 是 | 是 | 
| 問題 | 是 | 是 | 否 | 是 | 是 | 
| 問題欄位 | 否 | 否 | 否 | 是 | 否 | 
| 問題欄位組態 | 是 | 是 | 否 | 是 | 是 | 
| 問題連結類型 | 否 | 否 | 否 | 是 | 否 | 
| 問題通知結構描述 | 是 | 是 | 否 | 是 | 是 | 
| 問題安全結構描述 | 否 | 否 | 否 | 是 | 否 | 
| 問題類型結構描述 | 是 | 是 | 是 | 是 | 是 | 
| 問題類型螢幕結構描述 | 是 | 是 | 是 | 是 | 是 | 
| 問題類型 | 否 | 否 | 否 | 是 | 否 | 
| Jira 設定 | 是 | 否 | 否 | 是 | 否 | 
| Jira 進階設定 | 否 | 否 | 否 | 是 | 否 | 
| Jira 全域設定 | 否 | 否 | 否 | 是 | 否 | 
| 標籤 | 否 | 否 | 否 | 是 | 是 | 
| 我自己 | 是 | 否 | 否 | 是 | 否 | 
| 權限 | 否 | 否 | 否 | 是 | 否。 | 
| 專案 | 是 | 是 | 是 | 是 | 是 | 
| 專案類別 | 否 | 否 | 否 | 是 | 否 | 
| 專案類型 | 否 | 否 | 否 | 是 | 否 | 
| 伺服器資訊 | 否 | 否 | 否 | 是 | 否 | 
| 使用者 | 否 | 否 | 否。 | 是 | 否 | 
| 工作流程 | 是 | 是 | 是 | 是 | 是 | 
| 工作流程結構描述 | 否 | 是 | 否 | 是 | 是 | 
| 工作流程結構描述專案關聯 | 是 | 否 | 否 | 是 | 否 | 
| 工作流程狀態 | 否 | 否 | 否 | 是 | 否 | 
| 工作流程狀態類別 | 否 | 否 | 否 | 是 | 否 | 

**範例**：

```
jiracloud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="JiraCloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "audit-record",
        "API_VERSION": "v3"
    }
```

**Jira Cloud 實體和欄位詳細資訊**：

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/jira-cloud-reading-from-entities.html)

## 分區查詢
<a name="jira-cloud-reading-partitioning-queries"></a>

如果想要在 Spark 中使用並行，可以提供其他 Spark 選項 `NUM_PARTITIONS`。使用此參數，原始查詢會分區為可由 Spark 任務並行執行的子查詢的 `NUM_PARTITIONS` 數目。
+ `NUM_PARTITIONS`：分區數目。

範例：

```
jiraCloud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="JiraCloud",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "issue",
        "API_VERSION": "v3",
        "NUM_PARTITIONS": "10"
    }
```

# Jira Cloud 連線選項
<a name="jira-cloud-connection-options"></a>

以下是 Jira Cloud 的連線選項：
+ `ENTITY_NAME`(String) - (必要) 用於讀取。Jira Cloud 中的物件名稱。
+ `API_VERSION`(String) - (必要) 用於讀取。您要使用的 Jira Cloud Rest API 版本。例如：v3。
+ `DOMAIN_URL`(String) - (必要) 您要使用的 Jira Cloud ID。
+ `SELECTED_FIELDS`(List<String>) - 預設：empty(SELECT \$1)。用於讀取。您要為物件選取的資料欄。
+ `FILTER_PREDICATE`(String) - 預設：空白。用於讀取。其應該為 Spark SQL 格式。
+ `QUERY`(String) - 預設：空白。用於讀取。完整的 Spark SQL 查詢。
+ `NUM_PARTITIONS`(Integer) - 預設：1。用於讀取。要讀取的分區數目。

# Jira Cloud 連接器的限制和備註
<a name="jira-cloud-connector-limitations"></a>

以下是 Jira Cloud 連接器的限制或備註：
+  `Contains` 運算子不會使用 `String`資料類型的 `resourceName` 欄位。
+  根據預設，如果未套用明確的篩選條件，則只會爬取過去 30 天的問題。使用者可以透過指定自訂篩選條件來覆寫此預設篩選條件。