Skip to content

Commit c774d17

Browse files
Merge pull request #11 from acompany-develop/feat/hiraoka/CC-1049/reflect-basic-tutorial-FB
[CC-1049] FBをチュートリアルのドキュメントに反映させる
2 parents c17edd6 + 7e6d421 commit c774d17

File tree

1 file changed

+78
-72
lines changed

1 file changed

+78
-72
lines changed

notebooks/tutorial/basic_apc_cli_tutorial.ipynb

Lines changed: 78 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -6,83 +6,68 @@
66
"source": [
77
"# APC-CLI 基本チュートリアル 実行フロー\n",
88
"\n",
9-
"基本的に各ステップを上から順に実行することで、AutoPrivacy DCR上で関数を実行することができます。\n",
9+
"各ステップを上から順に実行することで、AutoPrivacy DCR上で関数を実行することができます。\n",
1010
"AutoPrivacy DCRの操作をCLIから行うツールとして、APC-CLIというコマンドラインツールを用います。\n",
1111
"\n",
12-
"**このJupyterNotebookは[こちら](https://github.com/acompany-develop/dcr-docs-examples/blob/main/notebooks/tutorial/basic_apc_cli_tutorial.ipynb)に上がっているため、ステップ2の環境変数さえ設定すれば、あとは説明に従って各セルを実行するだけで、AutoPrivacy DCR上で処理を実行できるようになっています。**\n",
12+
"**このJupyterNotebookは[dcr-docs-examplesリポジトリ](https://github.com/acompany-develop/dcr-docs-examples)に含まれています。リポジトリをクローンし、ステップ3の環境変数を設定すれば、説明に従って各セルを実行するだけでAutoPrivacy DCR上で処理を実行できます。**\n",
1313
"\n",
1414
"## 概要\n",
1515
"\n",
1616
"このスクリプトは以下の主要なステップで構成されています:\n",
17-
"1. 全体概要\n",
18-
"2. 環境変数設定\n",
19-
"3. APC-CLI のセットアップ\n",
20-
"4. プロファイル設定\n",
21-
"5. 入出力の設定ファイルの生成\n",
22-
"6. 認証とヘルスチェック\n",
23-
"7. プロジェクト設定\n",
24-
"8. 関数の準備\n",
25-
"9. 関数ストレージへのアップロード\n",
26-
"10. Cleanroom デプロイ\n",
27-
"11. データの Cleanroom へのコピー\n",
28-
"12. Cleanroom の実行\n",
29-
"13. 結果のダウンロード\n",
30-
"14. クリーンアップ"
17+
"1. チュートリアル全体概要\n",
18+
"2. AutoPrivacy DCR 概要\n",
19+
"3. 環境変数設定\n",
20+
"4. APC-CLI のセットアップ\n",
21+
"5. プロファイル設定\n",
22+
"6. 入出力の設定ファイルの生成\n",
23+
"7. 認証とヘルスチェック\n",
24+
"8. プロジェクト設定\n",
25+
"9. 関数の準備\n",
26+
"10. 関数ストレージへのアップロード\n",
27+
"11. Cleanroom デプロイ\n",
28+
"12. データの Cleanroom へのコピー\n",
29+
"13. Cleanroom の実行\n",
30+
"14. 結果のダウンロード\n",
31+
"15. クリーンアップ"
3132
]
3233
},
3334
{
3435
"cell_type": "markdown",
3536
"metadata": {},
3637
"source": [
37-
"## 1. 全体概要\n",
38-
"Cleanroomを用いることで、二者間で安全にデータを共有し実行することが可能となります。APC-CLI実行時に基本的にprofile(user)を指定するのですが、profileが異なれば異なるユーザーから実行されることを想定しているため、異なるマシンから実行することが可能です(同一のマシンから実行することも可能)。\n",
39-
"具体的なフロー図は以下のようになります。\n",
38+
"## 1. チュートリアル全体概要\n",
4039
"\n",
41-
"<details><summary>フロー図</summary>\n",
42-
"<img src=\"../img/apc_sequence.svg\" width=\"800\">\n",
43-
"</details>"
44-
]
45-
},
46-
{
47-
"cell_type": "markdown",
48-
"metadata": {},
49-
"source": [
50-
"## 2. 環境変数設定\n",
51-
"ファイル・ディレクトリ構成としては、今回は以下のようなものを想定します。この詳細については[こちら](https://acompany-develop.github.io/autoprivacy-cloud/apc-dcr/user-guide/user-files/function-directory.html)から参照できます。"
52-
]
53-
},
54-
{
55-
"cell_type": "markdown",
56-
"metadata": {},
57-
"source": [
58-
"```\n",
59-
"FUNCTION_SOURCE_PATH\n",
60-
"├── function # 関数のパス\n",
61-
"│ └── handler.py\n",
62-
"│ └── packages # 依存パッケージのパス\n",
63-
"├── inputs # 入力データのパス\n",
64-
"│ ├── input_1\n",
65-
"│ └── input_2\n",
66-
"└── outputs # 出力データのパス\n",
67-
" ├── output_1\n",
68-
" └── output_2\n",
69-
"```"
40+
"このチュートリアルでは、AutoPrivacy DCRを使用してデータの安全な共有と処理を実現する方法を説明します。具体的には、二者間でデータを共有し、Cleanroom上でjoin関数を実行することで、プライバシーを保護しながらデータ処理を行います。join関数の全実装は[こちらのコード](https://github.com/acompany-develop/dcr-docs-examples/blob/main/functions/join/function/handler.py)のようになります。\n",
41+
"\n",
42+
"**前提条件:**\n",
43+
"- 設定情報(CLIENT_ID、CLIENT_SECRET等)\n",
44+
"- Python 3.10\n",
45+
"- OS: macOS、Linux\n",
46+
"- アーキテクチャ: x86_64、ARM64"
7047
]
7148
},
7249
{
7350
"cell_type": "markdown",
7451
"metadata": {},
7552
"source": [
76-
"このチュートリアルではjoin関数をCleanroom上で実行します。join関数の全実装は[こちら](https://github.com/acompany-develop/dcr-docs-examples/blob/main/functions/join/function/handler.py)のようになります。"
53+
"## 2. AutoPrivacy DCR 概要\n",
54+
"Cleanroomを用いることで、二者間で安全にデータを共有し実行することが可能となります。APC-CLI実行時にprofile(user)を指定することで、異なるユーザーとして実行することができます。profileによってユーザーが区別されるため、異なるマシンから実行することが可能です(同一のマシンから実行することも可能)。\n",
55+
"具体的なフロー図は以下のようになります。\n",
56+
"\n",
57+
"<details><summary>フロー図</summary>\n",
58+
"<img src=\"../img/apc_sequence.svg\" width=\"800\">\n",
59+
"</details>"
7760
]
7861
},
7962
{
8063
"cell_type": "markdown",
8164
"metadata": {},
8265
"source": [
83-
"実行に必要な環境変数を.envファイルに書き込みます。`API_URL`, `ATTESTATION_URL`, `ATTESTATION_API_VERSION`, `MR_ENCLAVE`, `MR_SIGNER`, `CLIENT_ID1`, `CLIENT_SECRET1`, `CLIENT_ID2`, `CLIENT_SECRET2`, `PROJECT_ID`という環境変数の値はAutoPrivacy DCRサービス提供者から提供されたものを使用します。ただし、ダブルクオーテーションはつけずに値だけを環境変数に代入してください。\n",
66+
"## 3. 環境変数設定\n",
8467
"\n",
85-
"なお、データ共有を行う二者間では、`CLIENT_ID`と`CLIENT_SECRET`だけ異なり、それ以外環境変数の値(`API_URL`, `ATTESTATION_URL`, `ATTESTATION_API_VERSION`, `MR_ENCLAVE`, `MR_SIGNER`, `PROJECT_ID`)は同一になります。"
68+
"実行に必要な環境変数を設定します。`API_URL`, `ATTESTATION_URL`, `ATTESTATION_API_VERSION`, `MR_ENCLAVE`, `MR_SIGNER`, `CLIENT_ID1`, `CLIENT_SECRET1`, `CLIENT_ID2`, `CLIENT_SECRET2`, `PROJECT_ID`という環境変数の値は、AutoPrivacy DCRサービス提供者から提供されるconfig.tomlファイルに記載されています。ただし、ダブルクオーテーションはつけずに値だけを環境変数に代入してください。\n",
69+
"\n",
70+
"なお、データ共有を行う二者間では、`CLIENT_ID`と`CLIENT_SECRET`だけ異なり、それ以外の環境変数の値(`API_URL`, `ATTESTATION_URL`, `ATTESTATION_API_VERSION`, `MR_ENCLAVE`, `MR_SIGNER`, `PROJECT_ID`)は同一になります。"
8671
]
8772
},
8873
{
@@ -115,7 +100,7 @@
115100
"cell_type": "markdown",
116101
"metadata": {},
117102
"source": [
118-
"## 3. APC-CLI のセットアップ\n",
103+
"## 4. APC-CLI のセットアップ\n",
119104
"\n",
120105
"詳細なAPC-CLIのセットアップ方法については、[こちら](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/getting-started/installation.html)から参照できます。\n",
121106
"\n",
@@ -139,7 +124,11 @@
139124
"cell_type": "markdown",
140125
"metadata": {},
141126
"source": [
142-
"指定したバージョンでAPC-CLIをダウンロードします。"
127+
"指定したバージョンでAPC-CLIをダウンロードします。\n",
128+
"\n",
129+
"**注意**: このステップではwgetを使用します。wgetがインストールされていない場合は、以下のコマンドでインストールしてください:\n",
130+
"- **macOS**: `brew install wget`\n",
131+
"- **Linux (Ubuntu/Debian)**: `sudo apt-get install wget`"
143132
]
144133
},
145134
{
@@ -226,8 +215,8 @@
226215
"cell_type": "markdown",
227216
"metadata": {},
228217
"source": [
229-
"## 4. プロファイル設定\n",
230-
"各プロファイルに対して種設定情報を入力し、User IDを生成します。\n",
218+
"## 5. プロファイル設定\n",
219+
"各プロファイルに対して設定情報を入力し、User IDを生成します。\n",
231220
"今回のチュートリアルでは標準出力されるUserIDを環境変数に読み込むために以下のようにコマンドを実行します。\n",
232221
"コマンドの詳細は [configure コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/configure.html) から参照できます。\n",
233222
"\n",
@@ -307,11 +296,12 @@
307296
"cell_type": "markdown",
308297
"metadata": {},
309298
"source": [
310-
"## 5. 入出力の設定ファイルの生成\n",
299+
"## 6. 入出力の設定ファイルの生成\n",
311300
"\n",
312-
"入出力の設定ファイルを`$ENCRYPTED_FILES_PATH`に作成します。詳細は[こちら](https://acompany-develop.github.io/autoprivacy-cloud/apc-dcr/user-guide/user-files/definition-files.html)から参照できます。\n",
301+
"入出力の設定ファイルを`$ENCRYPTED_FILES_PATH`に作成します。この設定ファイルでは、入力データと出力データにアクセス可能なUser IDを指定します。\n",
302+
"詳細は[こちら](https://acompany-develop.github.io/autoprivacy-cloud/apc-dcr/user-guide/user-files/definition-files.html)から参照できます。\n",
313303
"\n",
314-
"**ただし、実行前に**`<USER_1_ID>`**と**`<USER_2_ID>`**を5で出力された**`profile1`**と**`profile2`**のUser IDに置き換えてください。**"
304+
"**注意: 以下のコマンド実行前に**`<USER_1_ID>`**と**`<USER_2_ID>`**を5で出力された**`profile1`**と**`profile2`**のUser IDに置き換えてください。**"
315305
]
316306
},
317307
{
@@ -340,7 +330,7 @@
340330
"cell_type": "markdown",
341331
"metadata": {},
342332
"source": [
343-
"## 6. 認証とヘルスチェック\n",
333+
"## 7. 認証とヘルスチェック\n",
344334
"\n",
345335
"各プロファイルでログインします。コマンドの詳細は [auth-login コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/auth-login.html) から参照できます。"
346336
]
@@ -386,7 +376,7 @@
386376
"cell_type": "markdown",
387377
"metadata": {},
388378
"source": [
389-
"## 7. プロジェクト設定\n",
379+
"## 8. プロジェクト設定\n",
390380
"\n",
391381
"各プロファイルで同じプロジェクトを設定します。コマンドの詳細は [set-project コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/set-project.html) から参照できます。"
392382
]
@@ -410,9 +400,25 @@
410400
"cell_type": "markdown",
411401
"metadata": {},
412402
"source": [
413-
"## 8. 関数の準備\n",
414-
"Cleanroom上で実行する関数のパスを設定します。\n",
415-
"今回のチュートリアルでは、リポジトリの中のjoin関数のパスを`FUNCTION_SOURCE_PATH`に指定します。\n",
403+
"## 9. 関数の準備\n",
404+
"\n",
405+
"Cleanroom上で実行する関数のパスを設定します。今回のチュートリアルでは、リポジトリの中のjoin関数のパスを`FUNCTION_SOURCE_PATH`に指定します。\n",
406+
"\n",
407+
"ファイル・ディレクトリ構成としては、今回は以下のようなものを想定します。ディレクトリ構成の詳細については[ドキュメント](https://acompany-develop.github.io/autoprivacy-cloud/apc-dcr/user-guide/user-files/function-directory.html)から参照できます。\n",
408+
"\n",
409+
"```\n",
410+
"FUNCTION_SOURCE_PATH\n",
411+
"├── function # 関数のパス\n",
412+
"│ └── handler.py\n",
413+
"│ └── packages # 依存パッケージのパス\n",
414+
"├── inputs # 入力データのパス\n",
415+
"│ ├── input_1\n",
416+
"│ └── input_2\n",
417+
"└── outputs # 出力データのパス\n",
418+
" ├── output_1\n",
419+
" └── output_2\n",
420+
"```\n",
421+
"\n",
416422
"なお、[このディレクトリ](https://github.com/acompany-develop/dcr-docs-examples/tree/main/functions)の中の関数はCleanroom上で実行可能であり、これらの関数のパスを指定することも可能です。"
417423
]
418424
},
@@ -468,7 +474,7 @@
468474
"cell_type": "markdown",
469475
"metadata": {},
470476
"source": [
471-
"## 9. 関数ストレージへのアップロード\n",
477+
"## 10. 関数ストレージへのアップロード\n",
472478
"\n",
473479
"関数ディレクトリのパスを指定した上で、実行する関数をCleanroom上にアップロードします。コマンドの詳細は [function-storage コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/function-storage.html#function-storage-upload) から参照できます。なお、出力された`FunctionStoragePath`は次のCleanroomデプロイのステップで使用します。"
474480
]
@@ -491,12 +497,12 @@
491497
"cell_type": "markdown",
492498
"metadata": {},
493499
"source": [
494-
"## 10. Cleanroom デプロイ\n",
500+
"## 11. Cleanroom デプロイ\n",
495501
"\n",
496502
"アップロードされた関数を使用してCleanroomアプリケーションをデプロイします。\n",
497503
"コマンドの詳細は [cleanroom deploy コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/cleanroom.html#cleanroom-deploy) から参照できます。\n",
498504
"\n",
499-
"**ただし、実行前に**`--source`**オプションの引数の<FUNCTION_STORAGE_PATH>を9で出力された**`FunctionStoragePath`**の値に置き換えてください。**"
505+
"**注意: 以下のコマンド実行前に**`--source`**オプションの引数の<FUNCTION_STORAGE_PATH>を10で出力された**`FunctionStoragePath`**の値に置き換えてください。**"
500506
]
501507
},
502508
{
@@ -524,7 +530,7 @@
524530
"cell_type": "markdown",
525531
"metadata": {},
526532
"source": [
527-
"## 11. データの Cleanroom へのコピー\n",
533+
"## 12. データの Cleanroom へのコピー\n",
528534
"\n",
529535
"各プロファイルから、ローカルの入力データをCleanroom上にコピーします。コマンドの詳細は [cleanroom copyコマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/cleanroom-data.html) から参照できます。"
530536
]
@@ -548,7 +554,7 @@
548554
"cell_type": "markdown",
549555
"metadata": {},
550556
"source": [
551-
"## 12. Cleanroom の実行\n",
557+
"## 13. Cleanroom の実行\n",
552558
"\n",
553559
"デプロイされたCleanroom上のアプリケーションを実行します。コマンドの詳細は [cleanroom run コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/cleanroom.html#cleanroom-run) から参照できます。"
554560
]
@@ -571,7 +577,7 @@
571577
"cell_type": "markdown",
572578
"metadata": {},
573579
"source": [
574-
"## 13. 結果のダウンロード\n",
580+
"## 14. 結果のダウンロード\n",
575581
"\n",
576582
"実行結果を各プロファイルにダウンロードします。コマンドの詳細は [cleanroom data コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/cleanroom-data.html) から参照できます。"
577583
]
@@ -595,9 +601,9 @@
595601
"cell_type": "markdown",
596602
"metadata": {},
597603
"source": [
598-
"## 14. クリーンアップ\n",
604+
"## 15. クリーンアップ\n",
599605
"\n",
600-
"使用したリソースに変更を加える必要があり、削除したい場合はリソースをクリーンアップすることができます"
606+
"DCR上にアップロードした関数ディレクトリやデプロイしたCleanroomアプリケーションを使用しない場合はクリーンアップすることをお勧めします。それぞれの手順は以下の通りです"
601607
]
602608
},
603609
{
@@ -627,7 +633,7 @@
627633
"source": [
628634
"Cleanroom上にアップロードされた関数を削除します。コマンドの詳細は [function-storage delete コマンド リファレンス](https://acompany-develop.github.io/autoprivacy-cloud/apc-cli/commands/function-storage.html#function-storage-delete) から参照できます。\n",
629635
"\n",
630-
"**ただし、実行前に<FUNCTION_STORAGE_PATH>を9で出力された`FunctionStoragePath`の値に置き換えてください。**"
636+
"**注意: 以下のコマンド実行前に<FUNCTION_STORAGE_PATH>を10で出力された`FunctionStoragePath`の値に置き換えてください。**"
631637
]
632638
},
633639
{

0 commit comments

Comments
 (0)