

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

# 使用 建立追蹤伺服器 AWS CLI
<a name="mlflow-create-tracking-server-cli"></a>

您可以使用 建立追蹤伺服器 AWS CLI ，以獲得更精細的安全性自訂。

## 先決條件
<a name="mlflow-create-tracking-server-cli-prereqs"></a>

若要使用 建立追蹤伺服器 AWS CLI，您必須具有下列項目：
+ **存取終端機。**這可能包括本機 IDEs、Amazon EC2 執行個體或 AWS CloudShell。
+ **存取開發環境。**這可能包括 Studio 或 Studio Classic 內的本機 IDE 或 Jupyter 筆記本環境。
+ **已設定的 AWS CLI 安裝**。如需詳細資訊，請參閱[設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。
+ **具有適當許可的 IAM 角色**。下列步驟需要您的環境具有 `iam:CreateRole`、`iam:AttachRolePolicy`、`iam:CreatePolicy` 和 `iam:ListPolicies`許可。用於執行本使用者指南中步驟的角色需要這些許可。本指南中的指示會建立 IAM 角色，做為 MLflow 追蹤伺服器的執行角色，以便其存取 Amazon S3 儲存貯體中的資料。此外，建立政策是為了將 IAM 角色提供給使用者，用於透過 MLflow SDK 許可與追蹤伺服器互動以呼叫 MLflow API 。如需詳細資訊，請參閱[修改許可政策 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)。

  如果使用 SageMaker Studio 筆記本，請使用這些 IAM 許可更新您 Studio 使用者設定檔的服務角色。若要更新服務角色，請導覽至 SageMaker AI 主控台，然後選取您正在使用的網域。然後在網域下，選取您正在使用的使用者設定檔。您會在那裡看到列出的服務角色。導覽至 IAM 主控台，在**角色**下搜尋服務角色，並使用允許 `iam:CreateRole`、`iam:CreatePolicy`、`iam:AttachRolePolicy` 和 `iam:ListPolicies` 動作的政策更新您的角色。

## 設定 AWS CLI 模型
<a name="mlflow-create-tracking-server-cli-setup"></a>

請依照終端機中的這些命令列步驟，設定 AWS CLI Amazon SageMaker AI with MLflow。

1. 安裝更新版本的 AWS CLI。如需詳細資訊，請參閱《AWS CLI 使用者指南》**中的[安裝或更新最新版 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

1. 使用以下命令確認 AWS CLI 已安裝 ：

   ```
   aws sagemaker help
   ```

   按 `q` 退出提示。

   如需故障診斷協助，請參閱[疑難排解常見的設定問題](mlflow-troubleshooting.md)。

## 設定 MLflow 基礎設施
<a name="mlflow-create-tracking-server-cli-infra-setup"></a>

下一節說明如何設定 MLflow 追蹤伺服器，以及追蹤伺服器所需的 Amazon S3 儲存貯體和 IAM 角色。

### 建立 S3 儲存貯體
<a name="mlflow-infra-setup-s3-bucket"></a>

在終端機中，使用下列命令來建立一般用途的 Amazon S3 儲存貯體：

**重要**  
當您為成品存放區提供 Amazon S3 URI 時，請確保 Amazon S3 儲存貯體與您的 AWS 區域 追蹤伺服器位於相同位置。**不支援跨區域成品儲存**。

```
bucket_name=bucket-name
region=valid-region

aws s3api create-bucket \
  --bucket $bucket_name \
  --region $region \
  --create-bucket-configuration LocationConstraint=$region
```

輸出格式應類似以下內容：

```
{
    "Location": "/bucket-name"
}
```

### 設定 IAM 信任政策
<a name="mlflow-create-tracking-server-cli-trust-policy"></a>

使用下列步驟來建立 IAM 信任政策。如需有關角色和信任政策的詳細資訊，請參閱《AWS Identity and Access Management 使用者指南》**中的[角色術語和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。

1. 在您的終端機中，使用下列命令來建立名為 `mlflow-trust-policy.json` 的檔案。

   ```
   cat <<EOF > /tmp/mlflow-trust-policy.json
   {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [                     
                         "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
   EOF
   ```

1. 在您的終端機中，使用下列命令來建立名為 `custom-policy.json` 的檔案。

   ```
   cat <<EOF > /tmp/custom-policy.json
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:Get*",
                   "s3:Put*",
                   "sagemaker:AddTags",
                   "sagemaker:CreateModelPackageGroup",
                   "sagemaker:CreateModelPackage",
                   "sagemaker:DescribeModelPackageGroup",
                   "sagemaker:UpdateModelPackage",
                   "s3:List*"
               ],
               "Resource": "*"
           }
       ]
   }
   EOF
   ```

1. 使用信任政策檔案建立角色。然後，連接允許 MLflow 存取您帳戶中 Amazon S3 和 SageMaker Model Registry 的 IAM 角色政策。MLflow 必須能夠存取追蹤伺服器成品存放區適用的 Amazon S3，並能存取 SageMaker Model Registry 以自動註冊模型。
**注意**  
如果您正在更新現有角色，請改用下列命令：`aws iam update-assume-role-policy --role-name $role_name --policy-document file:///tmp/mlflow-trust-policy.json`。

   ```
   role_name=role-name
   
   aws iam  create-role \
     --role-name $role_name \
     --assume-role-policy-document file:///tmp/mlflow-trust-policy.json
   
   aws iam put-role-policy \
     --role-name $role_name \
     --policy-name custom-policy \
     --policy-document file:///tmp/custom-policy.json
   
   role_arn=$(aws iam get-role --role-name  $role_name --query 'Role.Arn' --output text)
   ```

## 建立 MLflow 追蹤伺服器
<a name="mlflow-create-tracking-server-cli-create"></a>

在終端機中，使用 `create-mlflow-tracking-server` API 在 AWS 區域 您選擇的 中建立追蹤伺服器。此程序最多需要 25 分鐘的時間。

您可以選擇性地使用 `--tracking-server-config` 參數指定追蹤伺服器的大小。在 `"Small"`、`"Medium"` 與 `"Large"` 之間進行選擇。預設 MLflow 追蹤伺服器組態大小為 `"Small"`。您可以根據追蹤伺服器的預期使用情況，例如記錄的資料量、使用者數量和使用頻率，來選擇大小。如需詳細資訊，請參閱[MLflow 追蹤伺服器大小](mlflow.md#mlflow-create-tracking-server-sizes)。

下列命令會建立一個自動模型註冊已啟用的新追蹤伺服器。若要停用自動模型註冊，請指定 `--no-automatic-model-registration`。

建立追蹤伺服器後，您可以啟動 MLflow UI。如需詳細資訊，請參閱[使用預先簽章的 URL 啟動 MLflow UI](mlflow-launch-ui.md)。

**注意**  
最多可能需要 25 分鐘才能完成追蹤伺服器的建立。如果追蹤伺服器需要超過 25 分鐘才能建立，請檢查您是否具有必要的 IAM 許可。如需 IAM 使用者許可的詳細資訊，請參閱[設定 MLflow 的 IAM 許可。](mlflow-create-tracking-server-iam.md)。當您成功建立追蹤伺服器時，它會自動啟動。

當您建立追蹤伺服器時，建議您指定最新版本。如需有關可用版本的資訊，請參閱[追蹤伺服器版本](mlflow.md#mlflow-create-tracking-server-versions)。

根據預設，建立的追蹤伺服器是最新版本。不過，我們建議您一律明確指定最新版本，因為基礎 MLflow API 可能會變更。

```
ts_name=tracking-server-name
region=valid-region
version=valid-version        


aws sagemaker create-mlflow-tracking-server \
 --tracking-server-name $ts_name \
 --artifact-store-uri s3://$bucket_name \
 --role-arn $role_arn \
 --automatic-model-registration \
 --region $region \
 --mlflow-version $version
```

輸出格式應類似以下內容：

```
{
    "TrackingServerArn": "arn:aws:sagemaker:region:123456789012:mlflow-tracking-server/tracking-server-name"
}
```

**重要**  
**請記下追蹤伺服器 ARN 以供日後使用。**您也需要 `$bucket_name` 進行清除步驟。