

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 故障診斷 EFS 問題
<a name="efs-troubleshooting"></a>

本節說明 Amazon EFS 儲存相關問題的可能解決方案。

**Topics**
+ [對 Amazon EFS 問題進行故障診斷](#efs-issues)

## 對 Amazon EFS 問題進行故障診斷
<a name="efs-issues"></a>

本節說明下列 Amazon EFS 問題的可能解決方案。

**Topics**
+ [Amazon EFS 服務受管使用者疑難排解](#transfer-service-managed-efs)
+ [故障診斷遺失的 POSIX 設定檔](#missing-posix-profile)
+ [使用 Amazon EFS 對邏輯目錄進行故障診斷](#logical-dir-efs-no-directory)

### Amazon EFS 服務受管使用者疑難排解
<a name="transfer-service-managed-efs"></a>

**Description**

您執行 `sftp`命令，但提示不會出現，而是看到下列訊息：

```
Couldn't canonicalize: Permission denied
           Need cwd
```

**原因**

您 AWS Identity and Access Management (IAM) 使用者的角色沒有存取 Amazon Elastic File System (Amazon EFS) 的許可。

 **解決方案** 

增加使用者角色的政策許可。您可以新增 AWS 受管政策，例如 `AmazonElasticFileSystemClientFullAccess`。

### 故障診斷遺失的 POSIX 設定檔
<a name="missing-posix-profile"></a>

**Description**

如果您為伺服器使用 Amazon EFS 儲存體，而且您使用自訂身分提供者，則必須提供 AWS Lambda 函數 POSIX 設定檔。

**原因**

其中一個可能的原因是，我們用來建立 AWS Lambda後端 Amazon API Gateway 方法的範本目前不包含 POSIX 資訊。

如果您確實提供 POSIX 資訊，Transfer Family 可能無法正確剖析您用來提供 POSIX 資訊的格式。

**解決方案**

請務必為 `PosixProfile` 參數提供 Transfer Family 的 JSON 元素。

例如，如果您使用的是 Python，您可以在剖析 `PosixProfile` 參數的位置新增以下行：

```
if PosixProfile: 
        response_data["PosixProfile"] = json.loads(PosixProfile)
```

或者，在 JavaScript 中，您可以新增以下行，其中 `{{uid-value}}`和 `{{gid-value}}`分別代表使用者 ID (UID) 和群組 ID (GID) 的整數 0 或更高：

```
PosixProfile: {"Uid": {{uid-value}}, "Gid": {{gid-value}}},
```

 

這些程式碼範例會將 `PosixProfile` 參數以 JSON 物件的形式傳送至 Transfer Family，而不是以字串的形式傳送。

此外，在 中 AWS Secrets Manager，您必須存放 `PosixProfile` 參數，如下所示。將 `{{your-uid}}`和 取代`{{your-gid}}`為您 GID 和 UID 的實際值。

```
{"Uid": {{your-uid}}, "Gid": {{your-gid}}, "SecondaryGids": []}
```



### 使用 Amazon EFS 對邏輯目錄進行故障診斷
<a name="logical-dir-efs-no-directory"></a>

**Description**

如果使用者的主目錄不存在，而且他們執行 `ls`命令，系統會回應，如下所示：

```
sftp> ls
remote readdir ("/"): No such file or directory
```

**原因**

如果您的 Transfer Family 伺服器使用 Amazon EFS，則必須使用讀取和寫入存取權建立使用者的主目錄，使用者才能在其邏輯主目錄中工作。使用者無法自行建立此目錄，因為他們在其邏輯主目錄`mkdir`上缺少 的許可。

**解決方案**

具有父目錄管理存取權的使用者需要建立使用者的邏輯主目錄。