Apsara File Storage NAS (NAS) は、Elastic Compute Service (ECS) 、Elastic high performance Computing (E-HPC) 、Docker、Batch Computeなどのサービスに、安全で信頼性が高く、高性能で使いやすいファイルストレージサービスを提供する分散ファイルシステムです。 このトピックでは、Function ComputeコンソールでNASファイルシステムを設定する方法について説明します。
背景情報
Function ComputeはNASとシームレスに統合できます。 Function ComputeでサービスのNAS設定を構成できます。 設定には、リージョン、マウント対象、グループなどの情報が含まれます。 サービスにNASファイルシステムを設定すると、サービス内のすべての関数は、オンプレミスのファイルシステムにアクセスする場合と同じ方法で、NASファイルシステム内のファイルにアクセスできます。
次の項目では、Function ComputeのマウントターゲットとしてNASを使用する利点について説明します。
一時ファイルはNASファイルシステムに保存できます。 一時ファイルのサイズは、オンプレミスディスクの容量によって制限されません。
1つのNASファイルシステムで複数の機能がファイルを共有できます。
始める前に
Function Compute
NASファイルシステムは、仮想プライベートクラウド (VPC) にのみマウントできます。 指定されたNASファイルシステムにアクセスできる有効なVPCを設定する必要があります。
NAS
NASファイルシステムの設定
Function ComputeのNAS設定は、サービスレベルで設定されます。 NASマウントターゲットがサービスに設定されると、サービス内のすべての関数が指定されたNASファイルシステム内のファイルにアクセスできます。
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで目的のサービスを見つけ、[操作] 列の [設定] をクリックします。
[サービスの変更] ページの [ストレージ構成] セクションで、次のパラメーターを設定し、[保存] をクリックします。
NASファイルシステムのマウント: NASマウントを有効にするかどうかを指定します。 有効な値:
有効
無効化
NAS設定モード: NASファイルシステムの設定モードを指定します。 有効な値:
自動設定: システムはNASファイルシステムを自動的に設定します。
説明[自動設定] を選択する前に、関数がVPC内のリソースにアクセスできるようにし、VPC、vSwitch、およびセキュリティグループのパラメーターを設定する必要があります。 これらのパラメーターを設定しない場合、システムは上記のリソースを自動的に作成し、サービスに割り当てます。 課金の詳細については、「課金」をご参照ください。
[自動設定] を選択すると、汎用NASファイルシステムが作成されます。 NASファイルシステムの作成後に [自動設定] を再度選択した場合、システムは、前回 [自動設定] を選択したときに作成された既存の汎用NASファイルシステムを照会して使用します。 課金の詳細については、「汎用NASファイルシステムの課金」をご参照ください。
カスタム設定: NASファイルシステムを設定するには、次のパラメーターを設定する必要があります。
Apsara File Storage NAS: NASファイルシステムを選択します。 NASファイルシステムを作成する場合は、[NASファイルシステムの作成] をクリックし、[Apsara file Storage NASコンソール] でNASファイルシステムを作成します。 ネットワークファイルシステム (NFS) ベースのプロトコルNASファイルシステムのみがサポートされています。 SMB (Server Message Block) ベースのNASファイルシステムはサポートされていません。
User: カスタムユーザーIDを入力します。 このフィールドはオプションです。 値を指定しない場合、システムはルートユーザーのID (
UID=0
) を使用します。 同期呼び出しの詳細については、「NASユーザーとユーザーグループ」をご参照ください。ユーザーグループ: ユーザーグループのカスタムIDを入力します。 このフィールドはオプションです。 値を指定しない場合、システムはルートユーザーグループのID (
GID=0
) を使用します。 同期呼び出しの詳細については、「NASユーザーとユーザーグループ」をご参照ください。NASマウントターゲット: マウントターゲットを選択し、ディレクトリを設定します。 ディレクトリの設定方法の詳細については、「NASマウントターゲットの設定」をご参照ください。
マウントターゲット: サービスに設定されたVPCとvSwitchと一致するNASファイルシステムのマウントターゲットを選択します。
データ送信モード: 通常送信または暗号化送信を選択します。 汎用NASのみが暗号化伝送をサポートしています。 暗号化伝送は、データ伝送経路を暗号化するが、一定量のリソースを消費する。 詳細については、「NFSファイルシステムの転送中の暗号化」をご参照ください。
リモートNASファイルシステムのディレクトリ: 汎用NASファイルシステムのディレクトリは /で始まる必要があります。 Extreme NASファイルシステムのディレクトリは、/shareで始まる必要があります。 設定したディレクトリがリモートNASファイルシステムに存在しない場合、Function Computeはディレクトリを作成します。 ディレクトリ所有者は、上記で構成されたユーザーおよびユーザーグループであり、権限レベルは
777
です。関数ランタイム環境のローカルディレクトリ: /home、/mnt、または /dataディレクトリにサブディレクトリを入力します。
説明NASマウントターゲットを設定する前に、関数がVPC内のリソースにアクセスできるようにし、同じリージョンにあるVPCとvSwitchを選択する必要があります。 詳細については、「ネットワーク設定の構成」をご参照ください。
最大5つのNASマウントターゲットをサービスに設定できます。
NASユーザーとユーザーグループ
関数のNASマウントターゲットを設定するときは、まずユーザーIDとグループIDを指定する必要があります。 これらの2つの値は、NASのユーザーとユーザーグループに相当します。 ビジネス要件に基づいてファイル所有者と対応するグループ権限を構成するときは、ファイルに対して同じ読み取りおよび書き込み権限を指定する必要があります。
ユーザーIDおよびグループIDの有効値の範囲は0 ~ 65534です。 ユーザーIDを指定しない場合、システムはルートユーザーのID (UID=0
) を使用します。 グループIDを指定しない場合、システムはルートユーザーグループのID (GID=0
) を使用します。
Function Computeがルート以外の権限を使用してユーザーコードを実行する場合、リモートNASファイルシステムのサブディレクトリをマウントする場合は、ファンクションインスタンスでコードを実行するユーザーがサブディレクトリに対する読み取りおよび書き込み権限を持っていることを確認してください。 次のいずれかの方法を使用して、リモートNASファイルシステムのサブディレクトリをマウントすることを推奨します。
NASインスタンスを使用して、リモートNASファイルシステムのルートディレクトリをマウントします。 詳細については、「NASファイルシステムの設定」をご参照ください。
ルートディレクトリをマウントしたら、サブディレクトリを作成します。 例: fc-1。 次に、NASマウント対象のリモートNASファイルシステムのディレクトリの値をルートディレクトリ /から作成したサブディレクトリ /fc-1に変更してリモートマウントします。
#!/usr/bin/env python # -*- coding: utf-8 -*- import os def handler(event, context): print('uid : ' + str(os.geteuid())) print('gid : ' + str(os.getgid())) # Change the value to the local directory in the on-premises file system to which the NAS file system is mounted. local_nas_dir = "/home/app" # Change the value to the name of the destination subdirectory. target_sub_dir = "fc-1" # Create the destination subdirectory by using the permissions of the current instance in Function Compute. new_dir = local_nas_dir + '/' + target_sub_dir + '/' print('new_dir : ' + str(new_dir)) os.mkdir(new_dir) return 'success'
を返す
ECSインスタンスを使用してNASファイルシステムをマウントします。 詳細については、「ECSインスタンス購入時のNASファイルシステムのマウント」をご参照ください。
NASファイルシステムがECSインスタンスにマウントされたら、サブディレクトリを作成し、
chmod 777
を実行してサブディレクトリに対する権限を付与します。
デフォルトのユーザーとユーザーグループには、ファイルに対する読み取りおよび書き込み権限がありません。 そのため, ユーザーIDとグループIDを1 ~ 65534の特定の値に設定することを推奨します。 その後、サービス内のさまざまな関数がこれらのファイルリソースを共有できます。
NASにアップロードされるファイルに対する権限は、オンプレミスファイルに対する権限と同じです。
NASマウントターゲットの設定
NASマウントターゲットごとに、[リモートNASファイルシステムのディレクトリ] および [関数ランタイム環境のローカルディレクトリ] パラメーターを設定する必要があります。 オンプレミスのファイルシステムのローカルディレクトリは、NASファイルシステムのリモートディレクトリにマッピングされます。
リモートNASファイルシステムのディレクトリ
リモートNASファイルシステム内のディレクトリは、サービスがアクセスする必要があるNASファイルシステムのディレクトリを指します。 ディレクトリは、マウント対象と絶対ディレクトリで構成されています。 Apsara File Storage NASコンソールでマウントターゲットを追加できます。 マウントターゲットと絶対ディレクトリをリモートディレクトリにアセンブルできます。 たとえば、NASファイルシステムのマウントターゲットがxxxx-nas.aliyuncs.comで、絶対ディレクトリが /workspace/documentの場合、リモートディレクトリはxxxx-nas.aliyuncs.com:/workspace/documentになります。
Apsara File Storage NASコンソールにログインし、ファイルシステムリストのターゲットファイルシステムをクリックし、[マウントターゲット] をクリックしてマウントターゲットを取得します。
関数ランタイム環境のローカルディレクトリ
関数実行環境のローカルディレクトリは、ローカルファイルシステムのマウント対象を指します。 bin、opt、var、devなどのLinuxまたはUNIXシステムの共通ディレクトリを使用してNASファイルシステムをマウントすることはできません。 Function Computeでは、mnt、home、dataなどの非システムディレクトリを使用してNASファイルシステムをマウントできます。
関連ドキュメント
Function Computeコンソールの使用とは別に、Serverless Devsを使用してNASファイルシステムをマウントすることもできます。 詳細については、「基本機能」をご参照ください。