

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS CLI for Amazon SageMaker Studio Classic からライフサイクル設定を作成する
<a name="studio-lcc-create-cli"></a>

**重要**  
Amazon SageMaker Studio または Amazon SageMaker Studio Classic に Amazon SageMaker リソースの作成を許可するカスタム IAM ポリシーでは、これらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要になります。IAM ポリシーで Studio と Studio Classic によるリソースの作成が許可されていても、タグ付けが許可されていない場合は、リソースを作成しようとしたときに「AccessDenied」エラーが発生する可能性があります。詳細については、「[SageMaker AI リソースにタグ付けのアクセス許可を付与する](security_iam_id-based-policy-examples.md#grant-tagging-permissions)」を参照してください。  
SageMaker リソースを作成するためのアクセス許可を付与する [AWS Amazon SageMaker AI の マネージドポリシー](security-iam-awsmanpol.md) には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

**重要**  
2023 年 11 月 30 日以降、従来の Amazon SageMaker Studio のエクスペリエンスは Amazon SageMaker Studio Classic と名前が変更されました。以下のセクションは、Studio Classic アプリケーションの使用を前提とした内容です。更新後の Studio エクスペリエンスを使用する場合は、「[Amazon SageMaker Studio](studio-updated.md)」を参照してください。  
Studio Classic は既存のワークロードでも維持されますが、オンボーディングに利用できなくなります。既存の Studio Classic アプリケーションのみを停止または削除でき、新しいアプリケーションを作成することはできません。[ワークロードを新しい Studio エクスペリエンスに移行](studio-updated-migrate.md)することをお勧めします。

次のトピックでは、 を使用してライフサイクル設定を作成し AWS CLI 、Studio Classic 環境のカスタマイズを自動化する方法を示します。

## 前提条件
<a name="studio-lcc-create-cli-prerequisites"></a>

開始する前に、次の前提条件を完了します。
+ [現在の AWS CLI バージョンのインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled)の AWS CLI 手順に従って、 を更新します。
+ ローカルマシンで `aws configure` を実行し、 AWS 認証情報を入力します。 AWS 認証情報の詳細については、[AWS 「認証情報の理解と取得](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html)」を参照してください。
+ 「[Amazon SageMaker AI ドメインの概要](gs-studio-onboard.md)」の手順に従って、SageMaker AI ドメインにオンボードします。

## 手順 1: ライフサイクル設定を作成する
<a name="studio-lcc-create-cli-step1"></a>

以下の手順では、`Hello World` を出力するライフサイクル設定スクリプトを作成する方法について説明します。

**注記**  
各スクリプトには最大 **16,384 文字**まで入力できます。

1. ローカルマシンで、次の内容の `my-script.sh` というファイルを作成します。

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. `my-script.sh` ファイルを base64 形式に変換します。これにより、スペースと改行のエンコードによって発生するエラーを防止できます。

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Studio Classic で使用するライフサイクル設定を作成します。次のコマンドは、関連付けられた `KernelGateway` アプリケーションの起動時に実行されるライフサイクル設定を作成します。

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-studio-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type KernelGateway
   ```

   レスポンスに記載された、新しく作成されたライフサイクル設定の ARN を書き留めておきます。この ARN は、ライフサイクル設定をアプリケーションにアタッチするために必要です。

## 手順 2: ドメイン、ユーザープロファイル、または共有スペースにライフサイクル設定をアタッチする
<a name="studio-lcc-create-cli-step2"></a>

ライフサイクル設定をアタッチするには、ドメインまたはユーザープロファイルの `UserSettings`、または共有スペースの場合は `SpaceSettings` を更新する必要があります。ドメインレベルで関連付けられたライフサイクル設定スクリプトは、すべてのユーザーに継承されます。ただし、ユーザープロファイルレベルで関連付けられたスクリプトは特定のユーザーを対象とし、共有スペースレベルで関連付けられたスクリプトは共有スペースを対象とします。

次の例は、ライフサイクル設定がアタッチされた新しいユーザープロファイルを作成する方法を示しています。ドメイン用に [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html) コマンドを、スペース用に [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html) コマンドを使用して、ライフサイクル設定をアタッチした新しいドメインまたはスペースを作成することもできます。

前の手順で取得したライフサイクル設定 ARN を適切なアプリタイプ設定に追加します。例えば、ユーザーの `JupyterServerAppSettings` に挿入します。ライフサイクル設定のリストを渡すことで、複数のライフサイクル設定を一度に追加できます。ユーザーが で JupyterServer アプリケーションを起動すると AWS CLI、デフォルトの代わりに使用するライフサイクル設定を渡すことができます。ユーザーが渡すライフサイクル設定は、`JupyterServerAppSettings` 内のライフサイクル設定のリストに含まれていなければなりません。

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterServerAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

次の例は、ライフサイクル設定をアタッチするように既存の共有スペースを更新する方法を示しています。[update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) または [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html) コマンドを使用して、ライフサイクル設定がアタッチされた既存のドメインまたはユーザープロファイルを更新することもできます。アタッチされているライフサイクル設定のリストを更新する際は、すべてのライフサイクル設定をリストの一部として渡す必要があります。ライフサイクル設定がこのリストに含まれていない場合、アプリケーションにはアタッチされません。

```
aws sagemaker update-space --domain-id domain-id \
--space-name space-name \
--region region \
--space-settings '{
"JupyterServerAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

リソースのデフォルトのライフサイクル設定については、「[Amazon SageMaker Studio Classic のデフォルトのライフサイクル設定を構成する](studio-lcc-defaults.md)」を参照してください。

## 手順 3: ライフサイクル設定を使用してアプリケーションを起動する
<a name="studio-lcc-create-cli-step3"></a>

ドメイン、ユーザープロファイル、またはスペースにライフサイクル設定をアタッチすると、ユーザーはアプリケーションの起動時に AWS CLIを使用してその設定を選択できます。このセクションでは、ライフサイクル設定をアタッチしたアプリケーションを起動する方法について説明します。JupyterServer アプリケーションを起動した後にデフォルトのライフサイクル設定を変更する方法については、「[Amazon SageMaker Studio Classic のデフォルトのライフサイクル設定を構成する](studio-lcc-defaults.md)」を参照してください。

`create-app` コマンドを使用して目的のアプリケーションタイプを起動し、`resource-spec` 引数にライフサイクル設定 ARN を指定します。
+ 次の例は、関連付けられたライフサイクル設定で `JupyterServer` アプリケーションを作成する方法を示します。`JupyterServer` を作成する際は、`app-name` は `default` でなければなりません。`resource-spec` パラメータの一部として渡されるライフサイクル設定 ARN は、ドメインとユーザープロファイルの場合は `SpaceSettings` で、共有スペースの場合は `UserSettings` で指定されたライフサイクル設定 ARN リストの一部である必要があります。

  ```
  aws sagemaker create-app --domain-id domain-id \
  --region region \
  --user-profile-name user-profile-name \
  --app-type JupyterServer \
  --resource-spec LifecycleConfigArn=lifecycle-configuration-arn \
  --app-name default
  ```
+ 次の例は、関連付けられたライフサイクル設定で `KernelGateway` アプリケーションを作成する方法を示します。

  ```
  aws sagemaker create-app --domain-id domain-id \
  --region region \
  --user-profile-name user-profile-name \
  --app-type KernelGateway \
  --resource-spec LifecycleConfigArn=lifecycle-configuration-arn,SageMakerImageArn=sagemaker-image-arn,InstanceType=instance-type \
  --app-name app-name
  ```