適用対象:
Azure Data Factory
Azure Synapse Analytics
Tip
Microsoft Fabric の Data Factory (企業向けのオールインワン分析ソリューション) を試してみてください。 Microsoft Fabric では、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法については、こちらを参照してください。
この記事では、Azure Data Factory と Azure Synapse パイプラインのコピー アクティビティを使用して、SharePoint Online リストから、または SharePoint Online リストにデータをコピーする方法について説明します。 この記事は、Copy アクティビティの概要を説明する Copy アクティビティに関する記事に基づいています。
サポートされる機能
この SharePoint Online リスト コネクタでは、次の機能がサポートされます。
| サポートされる機能 | IR |
|---|---|
| Copy アクティビティ (ソース/-) | ① ② |
| 検索アクティビティ | ① ② |
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
ソースまたはシンクとしてサポートされているデータ ストアの一覧については、サポートされるデータ ストアに関する表を参照してください。
具体的には、この SharePoint List Online コネクタでは、サービス プリンシパル認証を使用して OData プロトコルを介してデータが取得されます。
Tip
このコネクタは、ファイルではなく、SharePoint Online リストからのデータのコピーをサポートしています。 「SharePoint Online からのファイルをコピーする」セクションからファイルをコピーする方法を参照してください。
概要
パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。
- データのコピー ツール
- Azure Portal
- .NET SDK
- Python SDK
- Azure PowerShell
- REST API
- Azure Resource Manager テンプレート
UI を使用して SharePoint Online リストへのリンク サービスを作成する
次の手順を使用して、Azure portal の UI で SharePoint Online リストへのリンク サービスを作成します。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンク サービス] を選択して、[新規] を選択します。
- Azureデータファクトリー
- Azure Synapse
SharePoint を検索し、SharePoint Online リスト コネクタを選択します。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
コネクタの構成の詳細
次のセクションでは、SharePoint Online リスト コネクタに固有のエンティティの定義に使用できるプロパティについて詳しく説明します。
リンクされたサービスのプロパティ
SharePoint Online リストのリンクされたサービスでは、次のプロパティがサポートされます。
| Property | Description | Required |
|---|---|---|
| 型 | type プロパティを SharePointOnlineList に設定する必要があります。 | Yes |
| siteUrl | SharePoint Online サイトの URL (たとえば、 https://contoso.sharepoint.com/sites/siteName)。 |
Yes |
| servicePrincipalId | Microsoft Entra ID に登録されているアプリケーションのアプリケーション (クライアント) ID。 | Yes |
| servicePrincipalCredentialType | サービス プリンシパル認証に使用する資格情報の種類を指定します。 使用できる値は ServicePrincipalCert と ServicePrincipalKey です。 |
No |
| ServicePrincipalCert の場合 | ||
| servicePrincipalEmbeddedCert | Microsoft Entra ID に登録されているアプリケーションの base64 でエンコードされた証明書を指定し、証明書のコンテンツ タイプが PKCS #12 であることを確認します。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 こちらの記事を参照して、アクセス許可設定を構成する必要があります。 | No |
| servicePrincipalEmbeddedCertPassword | 証明書がパスワードで保護されている場合は、証明書のパスワードを指定します。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 | No |
| ServicePrincipalKey の場合 | ||
| servicePrincipalKey | アプリケーションのキーです。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 アクセス許可の設定など、詳細についてはこちらのセクションを参照してください。 | No |
| tenantId | アプリケーションが存在するテナント ID。 | Yes |
| connectVia | データ ストアに接続するために使用される Integration Runtime。 指定されていない場合は、既定の Azure Integration Runtime が使用されます。 | No |
Note
Azure ACS (Access Control Services) に基づくサービス プリンシパル キー認証を使用している場合は、ACS の提供終了計画に伴い、サービス プリンシパル証明書認証に切り替えることをお勧めします。
例 1: サービス プリンシパル キー認証を使用する
{
"name": "SharePointOnlineList",
"properties": {
"type": "SharePointOnlineList",
"typeProperties": {
"siteUrl": "<site URL>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalKey": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenantId": "<tenant ID>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
例 2: サービス プリンシパル証明書認証を使用する
{
"name": "SharePointOnlineList",
"properties": {
"type": "SharePointOnlineList",
"typeProperties": {
"siteUrl": "<site URL>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalEmbeddedCert": {
"type": "SecureString",
"value": "<base64 encoded string of (.pfx) certificate data>"
},
"servicePrincipalEmbeddedCertPassword": {
"type": "SecureString",
"value": "<password of your certificate>"
},
"tenantId": "<tenant ID>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
サービス プリンシパル キーを使用するためのアクセス許可を付与する
SharePoint List Online コネクタでは、サービス プリンシパル認証を使用して SharePoint に接続されます。 設定するには、次の手順を実行します。
Microsoft ID プラットフォームにアプリケーションを登録します。 方法については、「クイック スタート: Microsoft ID プラットフォームにアプリケーションを登録する」を参照してください。 これらの値を記録しておきます。リンクされたサービスを定義するときに使います。
- アプリケーション識別子
- アプリケーション キー
- テナント ID
以下の手順のようにして、登録したアプリケーションに SharePoint Online サイトのアクセス許可を付与します。 そのためには、サイト管理者ロールが必要です。
SharePoint Online サイト リンクを開きます。 例: プレースホルダー
https://<your-site-url>/_layouts/15/appinv.aspxがサイトを表す、<your-site-url>形式の URL。登録したアプリケーション ID を検索し、空のフィールドに入力して、[作成] を選択します。
アプリ ドメイン:
contoso.comリダイレクト URL:
https://www.contoso.com権限の要求 XML:
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="Read"/> </AppPermissionRequests>
Note
SharePoint コネクタを構成するコンテキストでは、"アプリ ドメイン" と "リダイレクト URL" は、SharePoint データへのアクセスを許可するために Microsoft Entra ID に登録した SharePoint アプリを示します。 "アプリ ドメイン" は、SharePoint サイトがホストされているドメインです。 たとえば、SharePoint サイトが "https://contoso.sharepoint.com" にある場合、"アプリ ドメイン" は "contoso.sharepoint.com" になります。 "リダイレクト URL" は、ユーザーが SharePoint アプリを認証し、そのアプリにアクセス許可を付与した後、そのアプリがリダイレクトされる先の URL です。 この URL は、アプリがアクセス許可を持つ SharePoint サイト上のページである必要があります。 たとえば、ライブラリ内のファイルの一覧を表示するページや、ドキュメントの内容を表示するページの URL を使用できます。
このアプリの [信頼する] を選択します。
データセットのプロパティ
データセットの定義に使用できるセクションとプロパティの完全な一覧については、「データセットとリンクされたサービス」を参照してください。 次のセクションでは、SAP テーブル データセットでサポートされるプロパティの一覧を示します。
| Property | Description | Required |
|---|---|---|
| 型 | データセットの type プロパティは SharePointOnlineLResource に設定する必要があります。 | Yes |
| listName | SharePoint Online リストの名前。 アポストロフィ (') はファイル名では使用できません。 | Yes |
Example
{
"name": "SharePointOnlineListDataset",
"properties":
{
"type": "SharePointOnlineListResource",
"linkedServiceName": {
"referenceName": "<SharePoint Online List linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties":
{
"listName": "<name of the list>"
}
}
}
コピー アクティビティのプロパティ
アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 SharePoint Online リスト ソースでサポートされているプロパティの一覧を次のセクションに示します。
ソースとしての SharePoint Online リスト
SharePoint Online リストからデータをコピーするために、以下のプロパティがコピー アクティビティの source セクションでサポートされています。
| Property | Description | Required |
|---|---|---|
| 型 | コピー アクティビティ ソースの type プロパティは、SharePointOnlineListSource に設定する必要があります。 | Yes |
| クエリ | データをフィルター処理するためのカスタムの OData クエリ オプション。 例: "$top=10&$select=Title,Number". |
No |
| httpRequestTimeout | HTTP 要求の応答が返されるまでのタイムアウト (秒単位)。 既定値は 300 (5 分間) です。 | No |
Example
"activities":[
{
"name": "CopyFromSharePointOnlineList",
"type": "Copy",
"inputs": [
{
"referenceName": "<SharePoint Online List input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SharePointOnlineListSource",
"query": "<OData query e.g. $top=10&$select=Title,Number>"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Note
SharePoint Online リストのソースに対して複数の "選択" データ型を選択することはできません。
SharePoint Online リストのデータ型マッピング
SharePoint Online リストからデータをコピーする際、SharePoint Online リストのデータ型とサービスの内部で使用される中間データ型との間では、次のマッピングが使用されます。
| SharePoint Online のデータ型 | OData のデータ型 | 中間データ型 |
|---|---|---|
| 1 行のテキスト | Edm.String | String |
| 複数行のテキスト | Edm.String | String |
| 選択 (メニューから選択) | Edm.String | String |
| 数値 (1、1.0、100) | Edm.Double | Double |
| 通貨 ($、¥、€) | Edm.Double | Double |
| 日時 | Edm.DateTime | DateTime |
| 参照 (このサイトに既に存在する情報) | Edm.Int32 | Int32 |
| はい/いいえ (チェック ボックス) | Edm.Boolean | ブール値 |
| ユーザーまたはグループ | Edm.Int32 | Int32 |
| ハイパーリンクまたは画像 | Edm.String | String |
| 計算 (他の列に基づく計算) | Edm.String / Edm.Double / Edm.DateTime / Edm.Boolean | String / Double / DateTime / Boolean |
| Attachment | サポートされていません | |
| タスクの結果 | サポートされていません | |
| 外部データ | サポートされていません | |
| 管理されたメタデータ | サポートされていません |
SharePoint Online からのファイルをコピーする
SharePoint Online からファイルをコピーするには、Web アクティビティを使用して認証し、SPO からアクセス トークンを取得し、後続のコピー アクティビティに渡し、HTTP コネクタをソースとして使用してデータをコピーします。
「サービス プリンシパル キーを使用するためのアクセス許可を付与する」セクションに従って Microsoft Entra アプリケーションを作成し、SharePoint Online にアクセス許可を付与します。
Web アクティビティを作成し、SharePoint Online からアクセス トークンを取得します。
-
URL:
https://accounts.accesscontrol.windows.net/[Tenant-ID]/tokens/OAuth/2。 テナント ID は置き換えてください。 - 方法: POST
-
Headers:
- Content-Type: application/x-www-form-urlencoded
-
本文:
grant_type=client_credentials&client_id=[Client-ID]@[Tenant-ID]&client_secret=[Client-Secret]&resource=00000003-0000-0ff1-ce00-000000000000/[Tenant-Name].sharepoint.com@[Tenant-ID]。 クライアント ID (アプリケーション ID)、クライアント シークレット (アプリケーション キー)、テナント ID、テナント名 (SharePoint テナント) を置き換えます。
Caution
トークン値がプレーン テキストでログに記録されないようにするには、Web アクティビティで [セキュリティで保護された出力] オプションを true に設定します。 この値を使用するその他のアクティビティでは、[セキュリティで保護された入力] オプションが true に設定されている必要があります。
-
URL:
コピー アクティビティを、SharePoint Online ファイルのコンテンツをコピーするソースとして HTTP コネクタとチェーンします。
- HTTP のリンクされたサービス:
-
ベース URL:
https://[site-url]/_api/web/GetFileByServerRelativeUrl('[relative-path-to-file]')/$value。 サイト URL とファイルの相対パスを置き換えてください。 SharePoint サイトの URL と、https://[sharepoint-domain-name].sharepoint.com/sites/[sharepoint-site]/_api/web/GetFileByServerRelativeUrl('/sites/[sharepoint-site]/[relative-path-to-file]')/$valueなどのドメイン名を含めるようにしてください。 - 認証の種類: 匿名 (コピー アクティビティのソースで構成されているベアラー トークンを後で使用するため)
-
ベース URL:
- データセット: 目的の形式を選択します。 ファイルをそのままコピーするには、"バイナリ" の種類を選択します。
- コピー アクティビティのソース:
- 要求メソッド: GET
-
追加のヘッダー: 次の式を使用します。
@{concat('Authorization: Bearer ', activity('<Web-activity-name>').output.access_token)}。ここで、アップストリームの Web アクティビティによって生成されたベアラー トークンが authorization ヘッダーとして使用されます。 Web アクティビティ名を置き換えてください。
- サポートされているシンク先に対する Copy アクティビティ シンクを構成します。
- HTTP のリンクされたサービス:
Note
Microsoft Entra アプリケーションに SharePoint Online に対する FullControl アクセス許可がある場合でも、IRM が有効になっているドキュメント ライブラリからファイルをコピーすることはできません。
Lookup アクティビティのプロパティ
プロパティの詳細については、Lookup アクティビティに関するページを参照してください。
関連コンテンツ
コピー アクティビティでソースおよびシンクとしてサポートされているデータ ストアの一覧については、「サポートされるデータ ストアと形式」を参照してください。