AppFlowでSharePointをS3へ連携しようとしたらいっぱいエラーに遭遇したので対処方法をまとめます

AppFlowでSharePointをS3へ連携しようとしたらいっぱいエラーに遭遇したので対処方法をまとめます

Amazon AppFlowを使ってMicrosoft SharePoint OnlineからAmazon S3へデータを連携する際に遭遇したエラーと解消方法をまとめました。実際の設定手順と転送動作も合わせて紹介します。
2026.08.11

はじめに

皆様こんにちは、あかいけです。

最近、Microsoft SharePoint OnlineからAmazon S3へのデータ連携方式を検討する機会があり、以下の記事でAmazon AppFlowというサービスを知り、Microsoft SharePoint Onlineコネクタを実際に触ってみることにしました。

https://dev.classmethod.jp/articles/amazon-appflow-microsoft-sharepoint-online-source/

公式ドキュメントの手順に沿って進めてみたのですが、実際に自分の手を動かしてみると、ドキュメントだけでは読み取れないエラーに次々と遭遇しました。

https://docs.aws.amazon.com/ja_jp/appflow/latest/userguide/connectors-microsoft-sharepoint-online.html#microsoft-sharepoint-online-prereqs

同じ場所でハマる方の助けになればと思い、遭遇したエラーとその対処方法、そして実際にフローを動かしてみた結果までをまとめておきます。

前提条件

  • Microsoft SharePoint Onlineが有効なMicrosoft 365テナントを保有していること
  • AppFlowを利用するAWSアカウントを保有していること
  • Azure ADのアプリ登録に対する管理者権限を持っていること

AppFlowについて

Amazon AppFlowは、SalesforceやSlackといった様々なSaaSアプリケーションのデータを、コードを書かずにAWSサービスへ連携できるフルマネージドサービスです。

https://docs.aws.amazon.com/ja_jp/appflow/latest/userguide/getting-started.html
https://docs.aws.amazon.com/ja_jp/appflow/latest/userguide/app-specific.html

今回はこのAppFlowを使って、Microsoft SharePoint OnlineのドキュメントをAmazon S3へ連携してみます。

フロー作成までにやったこと

ざっくりした流れは公式ドキュメント通りです。

https://docs.aws.amazon.com/ja_jp/appflow/latest/userguide/connectors-microsoft-sharepoint-online.html#microsoft-sharepoint-online-prereqs

EntraID アプリ

まずはEntra ID(旧Azure AD)側でAppFlow用のアプリを登録します。

スクリーンショット 2026-08-11 1.37.48

リダイレクトURLは公式ドキュメントに記載あるものを指定します。
リージョンはAppFlowを作るリージョンを指定します。

スクリーンショット 2026-08-11 1.38.55

公式ドキュメント指定の以下権限をAPIアクセス許可に追加します。

  • offline_access
  • Sites.Read.All
  • User.Read

スクリーンショット 2026-08-11 1.39.23

スクリーンショット 2026-08-11 1.40.56

テナントIDとクライアントIDをメモしておきます。

スクリーンショット 2026-08-11 1.41.19

クライアントシークレットも作成してメモしておきます。

スクリーンショット 2026-08-11 1.41.35

SharePoint サイト

続いて、S3へ連携する対象となるSharePointサイトを作成しておきます。

スクリーンショット 2026-08-11 1.43.25

動作確認用に、転送するためのフォルダとファイルも用意しておきます。
今回はhogehoge-XXのフォルダを3つ作りました。

スクリーンショット 2026-08-11 1.48.21

それぞれのフォルダにmd、png、txtのファイルを入れておきます。
後述のフィルター機能の動作確認にも使います。

スクリーンショット 2026-08-11 1.48.33 1

AppFlow

準備ができたので、AppFlow側のフローを作成していきます。

フロー名は任意のもので進めます。
データ暗号化はデフォルト(カスタマイズなし)で進めます。

スクリーンショット 2026-08-11 1.50.26

スクリーンショット 2026-08-11 1.50.32

フローにて新規接続を作成し、EntraIDアプリの情報を入れます。

スクリーンショット 2026-08-11 1.50.52

  • カスタム認証トークンのURL:テナントID
  • カスタム認証コードのURL:テナントID
  • クライアントID:クライアントシークレットのシークレット ID
  • クライアントシークレット:クライアントシークレットの値

スクリーンショット 2026-08-11 1.57.26

そしてここからがエラーの連続でした。

エラー①:AADSTS700016

AADSTS700016: Application with identifier 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxa' was not found in the directory 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.

スクリーンショット 2026-08-11 2.27.58

解消方法

原因はクライアントIDの指定間違いでした。
「クライアントシークレットのシークレットID」ではなく、「クライアントID(アプリケーションID)」を指定するのが正解でした。

スクリーンショット 2026-08-11 13.28.11

スクリーンショット 2026-08-11 2.31.40

エラー②:AADSTS50011

クライアントIDを直したら、今度は別のエラーが出ました。

AADSTS50011: The redirect URI 'https://3rdp.oauth.console.api.aws' specified in the request does not match the redirect URIs configured for the application 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'. Make sure the redirect URI sent in the request matches one added to your application in the Azure portal. Navigate to https://aka.ms/redirectUriMismatchError to learn more about how to fix this.

スクリーンショット 2026-08-11 2.39.59

解消方法

エラーメッセージに表示されていたリダイレクトURI(https://3rdp.oauth.console.api.aws)を、Azure側のリダイレクトURIとして追加したところ解消しました。
公式ドキュメントに記載されているリダイレクトURI(https://region.console.aws.amazon.com/appflow/oauth)とは別に、こちらも登録しておく必要があるようです。

スクリーンショット 2026-08-11 2.41.38

スクリーンショット 2026-08-11 2.41.49

(詳細は調べていませんが、もしかしたらEntraID(SharePoint)側で仕様変更があったのかもしれません)

エラー③:500 (Internal Server Error)

認証自体は通るようになったのですが、今度はサイト一覧の取得でエラーになりました。

認証中 でエラーが発生しました
Error while communicating to connector: The request failed because the service Source Microsoft SharePoint Online returned the following error: Details: The request failed with status code 500 (Internal Server Error)..

スクリーンショット 2026-08-11 2.45.59

まずSharePointライセンスが有効か確認してみましたが、こちらは問題なさそうです。

az rest --method get --uri "https://graph.microsoft.com/v1.0/subscribedSkus"
{
  "servicePlanId": "e95bec33-7c88-4a70-8e19-b10bd9d0c014",
  "servicePlanName": "SHAREPOINTWAC",
  "provisioningStatus": "Success"
},
{
  "servicePlanId": "c7699d2e-19aa-44de-8edf-1736da088ca1",
  "servicePlanName": "SHAREPOINTSTANDARD",
  "provisioningStatus": "Success"
}

次に、AppFlowの画面には出てこない対象のSharePointサイトを、検索を使わずグループ経由で直接取得できないか試してみました。

az rest --method get --uri "https://graph.microsoft.com/v1.0/groups/{group-id}/sites/root"
{
  "displayName": "hogehoge-site",
  "webUrl": "https://XXXXX.sharepoint.com/sites/hogehoge-site"
}

こちらはあっさり成功しました。

ライセンスも有効、サイトも実際に存在していて直接取得もできる。それなのにAppFlowの画面には出てこない。
ここで調査を切り上げ、原因が分からないままとりあえず時間を置いてみることにしました。

解消方法

その後時間を置いたら解消しました。
具体的には、原因の切り分けに疲れてふて寝して8時間ほど放置していたら、いつの間にか一覧に表示されるようになっていました。

なお最初は自動生成される「コミュニケーション サイト」だけしか見えていませんでしたが、

スクリーンショット 2026-08-11 12.11.37

しばらくしたら冒頭で作成したサイトも見えるようになりました。

スクリーンショット 2026-08-11 12.21.56

Microsoft Q&Aでも似た事例に対して、新規作成したサイトが反映されるまで時間がかかることがある、という趣旨の回答が寄せられていました。
今回も新規にテナント・サイトを作成した直後だったので、反映に時間がかかっていたのかもしれません。(AIによる回答なので、どこまで裏付けが取れているかは正直わかりませんが、症状としては一致していました)

Wait for Propagation: Sometimes, newly created sites may take some time to propagate and become visible in Microsoft Graph. If the site was created very recently, you may need to wait a little while before it shows up.

https://learn.microsoft.com/en-us/answers/questions/5636164/new-sharepoint-site-does-not-appear-in-microsoft-g
https://learn.microsoft.com/en-us/answers/questions/371527/server-error-when-listing-sharepoint-sites

送信元の指定

サイトが選択できるようになったので、残りの設定を進めていきます。
転送元の指定はフォルダ単位で、今回は特定のフォルダだけを指定してみました。

スクリーンショット 2026-08-11 12.30.44

送信先の指定

送信先はAmazon S3を指定します。
転送先のパスは以下の形式になるようです。

  • S3://<バケット名>/<バケットプレフィックス>/<フロー名>

スクリーンショット 2026-08-11 12.30.59

フロートリガー

トリガーは3種類ありますが、SharePoint Onlineコネクタで使えるのはオンデマンドとスケジュール実行の2つのようです。

スクリーンショット 2026-08-11 12.31.10

今回はスケジュール実行を選択し、増分転送を試してみます。
なお開始日と開始時間は、コネクタ作成時より未来を指定する必要がありました。

スクリーンショット 2026-08-11 12.34.21

データフィールド マッピング

データフィールドのマッピングは全てのフィールドを指定します。

スクリーンショット 2026-08-11 12.38.58

スクリーンショット 2026-08-11 12.39.29

フィルター

せっかくなのでフィルター機能も試してみます。
「File Type」フィールドに対して、mdpngをOR条件で指定してみました。

スクリーンショット 2026-08-11 12.40.50

フロー アクティブ化

ここまで設定したらフローを作成して、

スクリーンショット 2026-08-11 12.43.01

最後にフローをアクティブ化すれば設定は完了です。

スクリーンショット 2026-08-11 12.45.35

転送の様子

初回転送

初回は指定したフォルダのファイルが全て転送されます。

スクリーンショット 2026-08-11 13.01.54

S3側を見てみると、フロー実行ごとの実行IDを名前に持つフォルダの配下に、転送されたファイルが格納される仕様のようです。

スクリーンショット 2026-08-11 13.02.12

実際に転送されたファイルを確認すると、フィルターで指定したmdpngのファイルだけが転送されており、txtファイルは除外されていました。
フィルター機能、ちゃんと効いています。

スクリーンショット 2026-08-11 13.01.39

増分がある場合

その後hogehoge-01の01.mdを更新し、新たに001.mdを追加してみます。

スクリーンショット 2026-08-11 13.04.36

差分があるファイルだけがちゃんと転送されており、

スクリーンショット 2026-08-11 13.12.41

2回目の実行では、1回目とは別の実行IDのフォルダが新規に作成され、その下にファイルが格納されていました。

スクリーンショット 2026-08-11 13.13.26

中身を見ても、差分があるファイルだけが転送されています。

スクリーンショット 2026-08-11 13.13.39

なお前回の初回転送のフォルダ内は何も変わっていませんでした。

スクリーンショット 2026-08-11 13.17.16

増分がない場合

その後差分がない状態で実行すると、実行履歴には記録が残るものの、

スクリーンショット 2026-08-11 13.30.44

実際には何も転送されませんでした。

スクリーンショット 2026-08-11 13.31.04

さいごに

以上、Amazon AppFlowでMicrosoft SharePoint OnlineからAmazon S3へのデータ連携を試してみました。
いっぱいエラーに遭遇してちょっと苦労しましたが、検証したかったフォルダ単位での転送対象指定、拡張子によるフィルター、差分転送については問題なく動作することは確認できたので満足しました。

SharePoint OnlineからS3への連携を検討されている方の参考になれば幸いです。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事