ほとんどの場合、インスタンスの /tmp
以外のディレクトリにデータを書き込むことができないのは、インスタンスがroot以外のユーザーによって起動されているためです。 このトピックでは、インスタンスがroot以外のユーザーによって起動される問題について考えられる原因と解決策について説明します。
原因1: 8月2022日より前に作成された関数
Function Computeでは、8月2022日より前に作成された関数の実行に使用されるデフォルトのユーザーは、ユーザーIDが10000以上の非ルートユーザーです。 詳細は、「8月2022」をご参照ください。
解決策
新しい関数を作成し、8月2022日より前に作成された関数のコードと構成を新しい関数に移行します。 デフォルトでは、新しい関数はrootユーザーによって実行され、すべてのディレクトリにデータを書き込むことができます。
原因2: NAS設定のユーザーIDとユーザーグループIDがrootでない
関数のNAS設定でユーザーIDとユーザーグループIDを非rootユーザーと非rootユーザーグループに設定した場合、関数インスタンスは非rootユーザーによって起動され、/tmp
以外のディレクトリにデータを書き込むことはできません。
解決策
NAS設定のユーザーIDとユーザーグループIDを、rootユーザー (UID=0) とrootユーザーグループ (GID=0) に変更します。 詳細については、「NASファイルシステムの設定」をご参照ください。