入出力定義ファイル

Cleanroom にデータをアップロード出来るユーザ、Cleanroom からデータをダウンロード出来るユーザを定義する yaml ファイルです。
cleanroom deploy コマンドの --encrypted-files オプションで指定します。

ファイルのフォーマット

ファイルのフォーマットは以下の通りです。

inputs:
    <input-id-1>: &user_1 <user-id-1>
    <input-id-2>: &user_2 <user-id-2>
outputs:
    <output-id-1>: *user_1
    <output-id-2>: *user_2

<input-id> と <output-id> はそれぞれ /WORK/inputs//WORK/outputs/ 直下のディレクトリ名に対応します。 複数のinputとoutputを定義することができ、それぞれ異なるユーザーがデータのアップロードやダウンロードを行えるよう、個別のuser-idを割り当てることができます。 yamlでは、 & で変数を定義し、 * で変数を参照することで、同じuser-idを複数箇所で再利用できます。

例えば、以下のようなファイルを作成した場合、

inputs:
    input_1: &user_1 fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY=
    input_2: &user_2 hqG3DtmdfsdfTfdjsaklTxgtAsedfTfdjsaklTTTEEe=
outputs:
    output_1: *user_1
  • user_id が fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY= のユーザは /WORK/inputs/input_1 ディレクトリにデータをアップロードできる。

  • user_id が hqG3DtmdfsdfTfdjsaklTxgtAsedfTfdjsaklTTTEEe= のユーザは /WORK/inputs/input_2 ディレクトリにデータをアップロードできる。

  • user_id が fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY= のユーザは /WORK/outputs/output_1 ディレクトリからデータをダウンロードできる。

という定義になります。

したがって、user_id が fqO2dYtmu6kxxcWVlojWM7CGmmVg1W89mdCfF2dR4WY= のユーザは以下のようなコマンドでデータのアップロード・ダウンロードが可能です。

apc cleanroom data cp ./input_1 app:input_1/
apc cleanroom data cp app:output_1 ./output_1

同様に、user_id が hqG3DtmdfsdfTfdjsaklTxgtAsedfTfdjsaklTTTEEe= のユーザは以下のようなコマンドでデータのアップロード・ダウンロードが可能です。

apc cleanroom data cp ./input_2 app:input_2/