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]、[セキュリティグループ] パラメーターを構成する必要があります。これらのパラメーターを構成しないと、システムは上記の resource を自動的に作成し、サービスに割り当てます。課金については、「課金」をご参照ください。
[自動構成] を選択すると、システムは汎用 NAS ファイルシステムを作成します。NAS ファイルシステムの作成後に [自動構成] を再度選択すると、システムは、[自動構成] を前回選択したときに作成された既存の汎用 NAS ファイルシステムを照会して使用します。課金については、「汎用 NAS ファイルシステムの課金」をご参照ください。
カスタム構成: NAS ファイルシステムを構成するには、次のパラメーターを構成する必要があります。
File Storage NAS: NAS ファイルシステムを選択します。NAS ファイルシステムを作成する場合は、[NAS ファイルシステムの作成] をクリックし、File Storage NAS コンソール で NAS ファイルシステムを作成します。ネットワーク ファイル システム (NFS) ベースのプロトコル NAS ファイルシステムのみがサポートされています。サーバーメッセージブロック (SMB) ベースの NAS ファイルシステムはサポートされていません。
ユーザー: カスタム ユーザー ID を入力します。このフィールドはオプションです。値を指定しない場合、システムは root ユーザーの ID (
UID=0) を使用します。同期呼び出しの詳細については、「NAS ユーザーとユーザーグループ」をご参照ください。ユーザーグループ: ユーザーグループのカスタム ID を入力します。このフィールドはオプションです。値を指定しない場合、システムは root ユーザーグループの ID (
GID=0) を使用します。同期呼び出しの詳細については、「NAS ユーザーとユーザーグループ」をご参照ください。NAS マウントポイント: マウントポイントを選択し、ディレクトリを構成します。ディレクトリの構成方法の詳細については、「NAS マウントポイントを構成する」をご参照ください。
マウントポイント: サービス用に構成された VPC および vSwitch と一致する、NAS ファイルシステムのマウントポイントを選択します。
データ転送モード: 通常転送または暗号化転送を選択します。汎用 NAS のみ暗号化転送をサポートしています。暗号化転送はデータ転送パスを暗号化しますが、一定量のリソースを消費します。詳細については、「NFS ファイルシステムの転送中暗号化」をご参照ください。
リモート NAS ファイルシステム内のディレクトリ: 汎用 NAS ファイルシステムのディレクトリは / で始まる必要があります。超高速型 NAS ファイルシステムのディレクトリは /share で始まる必要があります。構成したディレクトリがリモート NAS ファイルシステムに存在しない場合、Function Compute はディレクトリを作成します。ディレクトリの所有者は上記で構成したユーザーとユーザーグループであり、権限レベルは
777です。関数ランタイム環境内のローカルディレクトリ: /home、/mnt、または /data ディレクトリのサブディレクトリを入力します。
説明[NAS マウントターゲット] を構成する前に、VPC 内のリソースへのアクセスを許可し、同じリージョンにある [VPC] と [vSwitch] を選択する必要があります。詳細については、「ネットワーク設定の構成」をご参照ください。
1 つのサービスに対して最大 5 つの NAS マウントターゲットを構成できます。
NAS ユーザーとユーザーグループ
関数の NAS マウントポイントを構成する場合は、最初にユーザー ID とグループ ID を指定する必要があります。これらの 2 つの値は、NAS のユーザーとユーザーグループに相当します。ビジネス要件に基づいてファイル所有者と対応するグループ権限を構成する場合は、ファイルに対する同じ読み取りおよび書き込み権限を指定する必要があります。
ユーザー ID とグループ ID の有効値の範囲は 0 ~ 65534 です。ユーザー ID を指定しない場合、システムは root ユーザーの ID (UID=0) を使用します。グループ ID を指定しない場合、システムは root ユーザーグループの ID (GID=0) を使用します。
Function Compute が root 以外の権限を使用してユーザーコードを実行する場合、リモート 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())) # 値を、NAS ファイルシステムがマウントされているオンプレミスファイルシステム内のローカルディレクトリに変更します。 local_nas_dir = "/home/app" # 値を、宛先サブディレクトリの名前に変更します。 target_sub_dir = "fc-1" # 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 ファイルシステムのディレクトリを指します。ディレクトリは、マウントポイントと絶対ディレクトリで構成されます。File Storage NAS コンソールでマウントポイントを追加できます。マウントポイントと絶対ディレクトリをまとめてリモートディレクトリにすることができます。たとえば、NAS ファイルシステムのマウントポイントが xxxx-nas.aliyuncs.com で、絶対ディレクトリが /workspace/document の場合、リモートディレクトリは xxxx-nas.aliyuncs.com:/workspace/document になります。
File Storage NAS コンソール にログインし、ファイルシステムリストで宛先ファイルシステムをクリックして、[マウントポイント] をクリックすると、マウントポイントを取得できます。
関数ランタイム環境内のローカルディレクトリ
関数実行環境内のローカルディレクトリとは、ローカルファイルシステムのマウントポイントを指します。bin、opt、var、dev など、Linux または UNIX システムの共通ディレクトリを使用して NAS ファイルシステムをマウントすることはできません。Function Compute では、mnt、home、data などのシステム以外のディレクトリを使用して NAS ファイルシステムをマウントできます。
参考文献
Function Compute コンソールの他に、Serverless Devs を使用して NAS ファイルシステムをマウントすることもできます。詳細については、「基本機能」をご参照ください。