

# Zoom Meetings に対する接続
<a name="connecting-to-data-zoom-meetings"></a>

Zoom Meetings は、ビデオ会議、音声会議、ウェビナー、会議録音、ライブチャットに使用できるクラウドベースのビデオ会議プラットフォームです。

**Topics**
+ [Zoom Meetings 向けの AWS Glue サポート](zoom-meetings-support.md)
+ [接続を作成および使用するための API オペレーションを含むポリシー](zoom-meetings-configuring-iam-permissions.md)
+ [Zoom Meetings の設定](zoom-meetings-configuring.md)
+ [Zoom Meetings クライアントアプリの設定](zoom-meetings-configuring-client-app.md)
+ [Zoom Meetings 接続の設定](zoom-meetings-configuring-connections.md)
+ [Zoom Meetings エンティティからの読み取り](zoom-meetings-reading-from-entities.md)
+ [Zoom Meetings 接続オプション](zoom-meetings-connection-options.md)
+ [Zoom Meetings の制限事項](zoom-meetings-limitations.md)

# Zoom Meetings 向けの AWS Glue サポート
<a name="zoom-meetings-support"></a>

AWS Glue は、次のように Zoom Meetings をサポートします。

**ソースとしてサポートされていますか?**  
はい。AWS Glue ETL ジョブを使用して、Zoom Meetings からデータをクエリできます。

**ターゲットとしてサポートされていますか?**  
いいえ。

**サポートされている Zoom Meetings API バージョン**  
次の Zoom Meetings API バージョンがサポートされています。
+ v2

# 接続を作成および使用するための API オペレーションを含むポリシー
<a name="zoom-meetings-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 コンソールのユーザーにアタッチされています。

# Zoom Meetings の設定
<a name="zoom-meetings-configuring"></a>

AWS Glue を使用して Zoom Meetings からデータを転送できるようにするには、次の要件を満たす必要があります。

## 最小要件
<a name="zoom-meetings-configuring-min-requirements"></a>

以下に、最小要件を示します。
+ Zoom Meetings アカウントを持っている。
+ Zoom アカウントで API アクセスが有効になっている。
+ Zoom Meetings アカウントに OAuth2 アプリを作成している。この統合により、AWS Glue がお客様のアカウントに対して認証呼び出しを行うときに、お客様のデータに安全にアクセスするために使用する認証情報が提供されます。詳細については、「[Zoom Meetings クライアントアプリの設定](zoom-meetings-configuring-client-app.md)」を参照してください。

これらの要件を満たすと、Zoom Meetings アカウントに AWS Glue を接続する準備が整います。一般的な接続では、Zoom Meetings で他に何もする必要はありません。

# Zoom Meetings クライアントアプリの設定
<a name="zoom-meetings-configuring-client-app"></a>

1. Zoom App Marketplace にログインします。

1. **[開発]**、**[アプリの構築]** の順で選択します。

1. OAuth 2.0 ベースのアプリの **[一般アプリ]** を選択します。

1. **[基本情報]** ページで、アプリの名前、アプリの管理方法、アプリの認証情報、OAuth 情報など、アプリに関する情報を追加または更新します。

1. **[アプリの管理方法の選択]** セクションで、アプリの管理方法を確認します。

   1. **[管理者管理]**: アカウント管理者はアプリを追加および管理します

   1. **[ユーザー管理]**: 個々のユーザーがアプリを追加および管理します。アプリは、ユーザーの承認されたデータにのみアクセスできます。

1. **[アプリ認証情報]**: ビルドフローは、アプリのアプリ認証情報 (クライアント ID とクライアントシークレット) を自動的に生成します。

1. OAuth 情報セクションで、アプリの OAuth を設定します。

   1. **[OAuth リダイレクト URL]** (必須): リダイレクト URL またはエンドポイントを入力して、アプリと Zoom の間に OAuth を設定します。

   1. **[厳格モード URL を使用する]** (オプション)

   1. **サブドメインチェック** (オプション)

   1. **[OAuth 許可リスト]** (必須): Zoom が OAuth フローの有効なリダイレクトとして許可する一意の URL を追加します。

1. **[スコープ]** ページで、アプリが呼び出すことができる Zoom API メソッドを選択します。スコープは、ユーザーが利用できる情報と機能を定義します。次の詳細なスコープを選択します。
   + user:read:list\$1users:admin
   + zoom\$1rooms:read:list\$1rooms:admin
   + group:read:list\$1members:admin
   + group:read:administrator:admin
   + group:read:list\$1groups:admin
   + report:read:admin
   + role:read:list\$1roles、role:read:list\$1roles:admin

   スコープが追加されたら、**[続行]** を選択すると、アプリを使用する準備が整います。

OAuth 2.0 のセットアップの詳細については、「[統合 (OAuth アプリ)](https://developers.zoom.us/docs/integrations/)」を参照してください。

# Zoom Meetings 接続の設定
<a name="zoom-meetings-configuring-connections"></a>

Zoom Meetings は、OAuth2 の AUTHORIZATION\$1CODE のグラントタイプをサポートしています。グラントタイプは、AWS Glue が Zoom Meetings と通信してデータへのアクセスをリクエストする方法を決定します。
+ このグラントタイプは、ユーザーを認証するためにサードパーティーの認証サーバーにユーザーをリダイレクトすることから、「three-legged」の OAuth と見なされます。AWS Glue コンソール経由で接続を作成するときに使用されます。接続を作成するユーザーは、Zoom Meetings クライアントアプリケーションのクライアント ID やクライアントシークレットなどの OAuth 関連情報を指定する必要があります。AWS Glue コンソールでは、ユーザーが Zoom にリダイレクトされます。ここではユーザーがログインし、Zoom Meetings インスタンスにアクセスするためのリクエストされた権限を AWS Glue に許可する必要があります。
+ ユーザーは、Zoom Meetings で独自の接続アプリを作成し、AWS Glue コンソールを介して接続を作成するときに独自のクライアント ID とクライアントシークレットを指定することを選択できます。このシナリオでは、引き続き Zoom Meetings にリダイレクトされてログインし、リソースへアクセスするために AWS Glue を承認します。
+ このグラントタイプは、更新トークンとアクセストークンになります。アクセストークンの有効期間は短く、更新トークンを使用してユーザーとやり取りすることなく自動的に更新される場合があります。
+ 認可コード OAuth フロー用の接続アプリの作成に関する Zoom Meetings の公開ドキュメントについては、「[OAuth 2.0 を使用する](https://developers.zoom.us/docs/api/using-zoom-apis/#using-oauth-20)」を参照してください。

Zoom Meetings 接続を設定するには:

1. AWS Secrets Manager で、次の詳細を含むシークレットを作成します。

   1. カスタマーマネージド接続アプリケーションの場合、シークレットには、`USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` を使用して接続されたアプリケーションのコンシューマーシークレットをキーとして含める必要があります。

   1. 注: AWS Glue で接続にシークレットを作成する必要があります。

1. AWS Glue Glue Studio で、以下の手順に従って **[データ接続]** の下に接続を作成します。

   1. **[接続タイプ]** を選択する際に、[Zoom Meetings] を選択します。

   1. 接続先の Zoom Meetings 環境を指定します。

   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. AWS Glue でこの接続に使用する `secretName` を選択して、トークンを配置します。

   1. ネットワークを使用する場合は、ネットワークオプションを選択します。

1. AWS Glue ジョブに関連付けられている IAM ロールに `secretName` を読み取るアクセス許可を付与します。

# Zoom Meetings エンティティからの読み取り
<a name="zoom-meetings-reading-from-entities"></a>

**前提条件**

読み取り元の Zoom Meetings オブジェクト。`Group` または `Zoom Rooms` などのオブジェクト名が必要です。

**ソースに対応するエンティティ**:


| エンティティ | フィルタリング可能 | 制限をサポートする | Order By をサポートする | Select \$1 をサポートする | パーティション分割をサポートする | 
| --- | --- | --- | --- | --- | --- | 
| Zoom Rooms | なし | あり | なし | あり | なし | 
| グループ | なし | なし | なし | あり | なし | 
| グループメンバー | はい | あり | なし | あり | なし | 
| グループ管理者 | なし | あり | なし | あり | なし | 
| レポート (毎日) | あり | なし | なし | あり | なし | 
| ロール | なし | なし | なし | あり | なし | 
| [ユーザー] | はい | あり | なし | あり | なし | 

**例**:

```
zoom_read = glueContext.create_dynamic_frame.from_options(
    connection_type="zoom",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "organization",
        "API_VERSION": "v2"
    }
)
```

**Zoom Meetings エンティティとフィールドの詳細**:

Zoom Meetings は、選択したエンティティで使用可能なフィールドを動的にロードします。フィールドのデータ型に応じて、次のフィルター演算子がサポートされます。

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

## パーティショニングクエリ
<a name="zoom-meetings-reading-partitioning-queries"></a>

Zoom Meetings は、フィルターベースのパーティショニングまたはレコードベースのパーティショニングをサポートしていません。

# Zoom Meetings 接続オプション
<a name="zoom-meetings-connection-options"></a>

Zoom Meetings の接続オプションは次のとおりです。
+ `ENTITY_NAME`(文字列) – (必須) 読み取りに使用されます。Zoom Meetings エンティティの名前。例えば、`group`。
+ `API_VERSION`(文字列) – (必須) 読み取りに使用されます。使用する Zoom Meetings Rest API バージョン。Zoom Meetings は現在バージョン v2 のみをサポートしているため、この値は `v2` になります。
+ `SELECTED_FIELDS`(List<String>) – Default: empty(SELECT \$1). 読み込みに使用されます。選択したエンティティに対して選択する列のカンマ区切りリスト。
+ `FILTER_PREDICATE`(文字列) – デフォルト: 空 読み込みに使用されます。Spark SQL 形式である必要があります。
+ `QUERY`(文字列) - デフォルト: 空 読み込みに使用されます。完全な Spark SQL クエリです。

# Zoom Meetings の制限事項
<a name="zoom-meetings-limitations"></a>

以下は、Zoom Meetings の制限事項または注意事項は次のとおりです。
+ Zoom Meetings は orderby をサポートしていません。
+ Zoom Meetings では、必要な条件を満たすフィールドがないため、フィルターベースのパーティション分割はサポートされていません。
+ Zoom Meetings では、ページ分割の制限とオフセットベースのページ分割がサポートされていないため、レコードベースのパーティション分割はサポートされていません。