

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

# 對 Amazon Linux 2023 建置映像問題進行故障診斷
<a name="troubleshooting-AL2023"></a>

以下資訊可協助您疑難排解 Amazon Linux 2023 (AL2023) 建置映像的問題。

**Topics**
+ [我想要使用 Python 執行時間執行 Amplify 函數](#python-runtime)
+ [我想要執行需要超級使用者或根權限的命令](#root-privileges)

## 我想要使用 Python 執行時間執行 Amplify 函數
<a name="python-runtime"></a>

當您部署新的應用程式時，Amplify Hosting 現在預設會使用 Amazon Linux 2023 建置映像。AL2023 已預先安裝 Python 3.8、3.9、3.10 和 3.11 版。

為了回溯相容於 Amazon Linux 2 映像，AL2023 建置映像具有預先安裝舊版 Python 的符號連結。

根據預設，Python 3.10 版會全域使用。若要使用特定 Python 版本建置函數，請在應用程式的建置規格檔案中執行下列命令。

```
version: 1
backend:
  phases:
    build:
      commands:
        # use a python version globally
        - pyenv global 3.11
        # verify python version
        - python --version
        # install pipenv
        - pip install --user pipenv
        # add to path
        - export PATH=$PATH:/root/.local/bin
        # verify pipenv version
        - pipenv --version
        - amplifyPush --simple
```

## 我想要執行需要超級使用者或根權限的命令
<a name="root-privileges"></a>

如果您使用 Amazon Linux 2023 建置映像，並在執行需要超級使用者或根權限的系統命令時收到錯誤，則必須使用 Linux 命令執行這些`sudo`命令。例如，如果您收到執行 的錯誤`yum install -y gcc`，請使用 `sudo yum install -y gcc`。

Amazon Linux 2 建置映像使用根使用者，但 Amplify 的 AL2023 映像會使用自訂`amplify`使用者執行您的程式碼。Amplify 授予此使用者使用 Linux 命令執行`sudo`命令的權限。最佳實務是`sudo`針對需要超級使用者權限的命令使用 。