AWS CLIからライフサイクル設定を作成する - Amazon SageMaker

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

AWS CLIからライフサイクル設定を作成する

重要

Amazon SageMaker Studio または Amazon SageMaker Studio Classic が Amazon SageMaker リソースを作成できるようにするカスタムIAMポリシーは、それらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要です。IAM ポリシーで Studio と Studio Classic がリソースの作成を許可しているが、タグ付けが許可されていない場合、リソースの作成を試みるとAccessDenied「」エラーが発生する可能性があります。詳細については、「リソースにタグ付けするための SageMakerアクセス許可を提供する」を参照してください。

AWS Amazon のマネージドポリシー SageMaker SageMaker リソースを作成するアクセス許可を付与する には、これらのリソースの作成中にタグを追加するアクセス許可が既に含まれています。

重要

2023 年 11 月 30 日現在、以前の Amazon SageMaker Studio エクスペリエンスは Amazon SageMaker Studio Classic と名付けられています。以下のセクションは、Studio Classic アプリケーションの使用に固有のものです。更新された Studio エクスペリエンスの使用については、「」を参照してくださいAmazon SageMaker Studio

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

前提条件

開始する前に、次の前提条件を完了します。

手順 1: ライフサイクル設定を作成する

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

注記

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

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

    #!/bin/bash set -eux echo 'Hello World!'
  2. my-script.sh ファイルを base64 形式に変換します。これにより、スペースと改行のエンコードによって発生するエラーを防止できます。

    LCC_CONTENT=`openssl base64 -A -in my-script.sh`
  3. 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: ドメイン、ユーザープロファイル、または共有スペースにライフサイクル設定をアタッチする

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

次の例は、ライフサイクル設定がアタッチされた新しいユーザープロファイルを作成する方法を示しています。ドメイン用に create-domain コマンドを、スペース用に create-space コマンドを使用して、ライフサイクル設定をアタッチした新しいドメインまたはスペースを作成することもできます。

前のステップ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 または コマンドを使用して、ライフサイクル設定をアタッチして既存のドメインまたはユーザープロファイルを更新することもできます。 update-user-profileアタッチされているライフサイクル設定のリストを更新する際は、すべてのライフサイクル設定をリストの一部として渡す必要があります。ライフサイクル設定がこのリストに含まれていない場合、アプリケーションにはアタッチされません。

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

リソースのデフォルトのライフサイクル設定については、「デフォルトのライフサイクル設定を設定する」を参照してください。

手順 3: ライフサイクル設定を使用してアプリケーションを起動する

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

create-app コマンドを使用して目的のアプリケーションタイプを起動し、 resource-spec引数ARNでライフサイクル設定を指定します。

  • 次の例は、関連付けられたライフサイクル設定で JupyterServer アプリケーションを作成する方法を示します。JupyterServer を作成する際は、app-namedefault でなければなりません。resource-spec パラメータの一部としてARN渡されるライフサイクル設定は、ドメインまたはユーザープロファイル、またはSpaceSettings共有スペースUserSettingsに対して でARNs指定されたライフサイクル設定のリストの一部である必要があります。

    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