デフォルトの DataWorks ランタイムに、PyODPS や Shell タスクに必要な依存関係 (pandas や jieba などの Python ライブラリなど) がない場合は、カスタムイメージを作成します。カスタムイメージは、すべての依存関係を再利用可能で標準化されたランタイム環境にパッケージ化し、一貫性を確保し、開発効率を大幅に向上させます。
使用上の注意
エディション要件:
すべてのエディション: カスタムイメージの作成と使用。
Professional エディション以上: 永続イメージをビルド。
リソースグループのサポート: カスタムイメージはサーバーレスリソースグループでのみ機能します。
レガシーリソースグループ: 外部の依存関係をインストールするには、O&M Assistant を使用します。
必要な権限: 次のいずれかのポリシーが必要です: AliyunDataWorksFullAccess または ModifyResourceGroup。
詳細については、「プロダクトとコンソールのアクセス制御: RAM ポリシー」をご参照ください。
クォータと制限
イメージ数の制限:
Basic および Standard エディション: 10。
Professional Edition: 50。
Enterprise Edition: 100。
ビルドの同時実行数: リージョンごとに最大 2 つの同時ビルド。
ACR イメージの要件:
インスタンスエディション: Enterprise Edition。
アーキテクチャ: AMD64。
イメージサイズ: イメージあたり最大 5 GB。
永続ビルド: DataWorks 公式イメージからビルドされたイメージ (ACR イメージではない) のみがサポートされます。
サポートされているノードタイプ:
ノードタイプ
公式イメージからのビルド
ACR イメージからのビルド
PyODPS2PyODPS3EMR SparkEMR Spark SQLEMR SHELLシェルPythonノートブックCDHAssignment node
手順
カスタムイメージの作成
次の 3 つの方法のいずれかを選択して、カスタムイメージを作成します:
オプション 1: DataWorks 公式イメージからビルド
DataWorks コンソールにログインし、左側のナビゲーションウィンドウで [イメージ管理] をクリックします。
[DataWorks 公式イメージ] タブで、ベースイメージを選択し、[アクション] 列の [カスタムイメージの作成] をクリックします。
次のパラメーターを構成します:
パラメーター
説明
イメージ名 / ID
選択された公式イメージ (必要に応じて切り替え可能)。
可視範囲
作成者のみに表示 または すべてに表示。
モジュール
現在、DataStudio に限定されています。
サポートされるタスクタイプ
このイメージを使用できるノードタイプを選択します。
インストールパッケージ
次のいずれかの方法を使用して、サードパーティのパッケージを追加します:
クイックインストール: ドロップダウンから
Python2、Python3、またはYumを選択し、パッケージを選択します。スクリプトモード:
スクリプトを選択し、インストールコマンドを手動で入力します:pip:
pip install xx。pip3:
/home/tops/bin/pip3 install 'urllib3<2.0'。yum:
yum install -y git。wget:
wget git。詳細については、「付録: インストールコマンドリファレンス」をご参照ください。
重要インターネットからサードパーティのパッケージをインストールまたは依存するには、サーバーレスリソースグループにアタッチされた VPC (仮想プライベートクラウド) に インターネットアクセス が必要です。
[OK] をクリックします。
オプション 2: ACR イメージからビルド
ACR からカスタムイメージを作成するには、まず Container Registry を有効にします。
DataWorks コンソールにログインし、左側のナビゲーションウィンドウで [イメージ管理] をクリックします。
[カスタムイメージ] タブで [イメージの作成] をクリックし、以下を構成します:
パラメーター
説明
参照タイプ
[Alibaba Cloud Container Registry イメージ] を選択します。
イメージインスタンス ID
ACR エンタープライズインスタンスを選択します。
イメージ名前空間
インスタンスから 名前空間 を選択します。
イメージリポジトリ
イメージリポジトリを選択します。
イメージバージョン
使用するバージョンを選択します。
関連付ける VPC
ACR インスタンスにバインドされている VPC を選択します。詳細については、「VPC アクセスの設定」をご参照ください。
重要DataWorks は、ACR インスタンスごとに 1 つの VPC のみを選択することをサポートしています。
MaxCompute への同期
デフォルトは [いいえ] で、Standard Edition 以上を実行している ACR インスタンスでのみ使用できます。
はい: DataWorks カスタムイメージを生成し、公開時に MaxCompute イメージとして同期的にビルドします。
詳細については、「個人開発環境から MaxCompute イメージを作成する」をご参照ください。
いいえ: MaxCompute と同期せずに DataWorks カスタムイメージのみを生成します。
可視範囲
作成者のみに表示 または すべてに表示。
モジュール
現在、DataStudio に限定されています。
サポートされるタスクタイプ
ACR イメージはエントリポイント:
startup command + task_script_pathを使用します。Shell: デフォルトのコマンド。Python: ACR ベースイメージに Python ランタイムが含まれていることを確認してくださいNotebookDataWorks Notebook ベースイメージを使用:
dataworks-public-registry.cn-shanghai.cr.aliyuncs.com/public/dataworks-notebook:py3.11-ubuntu22.04-20241202。ビルド環境がこのベースイメージをプルするためにインターネットにアクセスできることを確認してください。
[OK] をクリックします。
オプション 3: 個人開発環境からビルド
Data Studio は、個人開発環境からのイメージ作成をサポートしています。詳細については、「個人開発環境から DataWorks イメージを作成する」をご参照ください。
イメージのテストと公開
DataWorks コンソールで、 に移動します。
イメージを見つけて、[アクション] 列の [公開] をクリックします。
テストが失敗した場合は、 をクリックしてイメージ構成を更新できます。
注:
リソースグループ: サーバーレスリソースグループを選択します。
VPC の一貫性: ACR または個人環境イメージの場合、サーバーレスリソースグループと ACR インスタンスが同じ VPC を使用していることを確認してください。
インターネットアクセス: パッケージのフェッチ中にテストがタイムアウトした場合は、テストリソースグループの VPC に インターネットアクセス があることを確認してください。
イメージをワークスペースに割り当てる
公開後、イメージをワークスペースに割り当てます:
タブで、公開したイメージを見つけます。
[操作] 列の をクリックします。
タスクでのイメージの使用
Data Studio の新しいバージョン:
Data Studio に移動: DataWorks ワークスペースページ に移動し、ターゲットリージョンに切り替え、ワークスペースを見つけて、 をクリックします。
イメージの構成: タスクノードで、右側のペインの [スケジューリング] をクリックします。
リソースグループ: サーバーレスリソースグループを選択します。
ターゲットリソースグループが表示されない場合は、リソースグループページ に移動し、[ワークスペースの関連付け] をクリックします。
重要このリソースグループが、イメージの公開時に使用されたテストリソースグループと一致することを確認してください。
イメージ: 公開したカスタムイメージを選択します。
イメージへの変更を本番環境で有効にするには、ノードを再公開する必要があります。

ノードのデバッグ: [デバッグ設定] ペインで、[計算リソース]、[リソースグループ]、[計算用 CU]、[イメージ]、および [スクリプトパラメーター] を構成し、ツールバーの [実行時間] をクリックします。
ノードの公開: ツールバーの [公開] をクリックして本番環境にデプロイします。
DataStudio のレガシーバージョン
DataStudio に移動: DataWorks コンソールにログインし、リージョンに切り替え、 をクリックし、ワークスペースを選択して、[データ開発へ] をクリックします。
イメージの構成: タスクノードで、右側のペインの [プロパティ] をクリックします。
リソースグループ: サーバーレスリソースグループを選択します。
ターゲットリソースグループが表示されない場合は、リソースグループページ に移動し、[ワークスペースの関連付け] をクリックします。
重要このリソースグループが、イメージの公開時に使用されたテストリソースグループと一致することを確認してください。
イメージ: 公開したカスタムイメージを選択します。
イメージへの変更を本番環境で有効にするには、ノードを再公開する必要があります。

ノードのデバッグ: [パラメーター付きで実行] (
) をクリックし、[リソースグループ名]、[実行用 CU]、および [イメージ] を構成してから、[実行] をクリックします。ノードの公開: [保存] と [送信] をクリックして、本番環境にデプロイします。
永続イメージのビルド
公開とテストの後に永続イメージをビルドすることを強くお勧めします。これにより、上流依存関係の変更や未指定のバージョンによるランタイムエラーを防ぐことができます。
通常のカスタムイメージは実行のたびに再デプロイされ、実行時間と計算コストが増加します。永続イメージは一度ビルドすれば無期限に再利用できるため、効率が向上し、コストが削減されます。
に移動し、公開したイメージを見つけます。
[アクション] 列の をクリックします。
[イメージを作成するリソースグループ] ダイアログで、リソースグループを選択し、[続行] をクリックします。
重要ネットワーク関連の障害を防ぐため、このリソースグループが公開時に使用されたテストリソースグループと一致することを確認してください。
ビルドにはイメージサイズに応じて 5〜10 分かかります。成功すると、ステータスが 公開済み (ビルド成功) に変わります。
課金
イメージビルドは次のように課金されます: CU 数 × ビルド期間。システムはデフォルトで 0.5 CU を割り当てます。課金の詳細については、「サーバーレスリソースグループの課金」をご参照ください。
本番環境のベストプラクティス
本番環境で安定、効率的、コスト効果の高い使用をするために、以下の推奨事項に従ってください:
永続イメージ: 安定した依存関係を持つ公開済みの構成から永続イメージをビルドします。これにより、実行ごとの再インストールが不要になり、起動時間、計算コストが削減され、安定性が向上します。
環境の一貫性: 特にプライベート ACR リポジトリやインターネットにアクセスする場合、テスト、ビルド、および本番のサーバーレスリソースグループ間で VPC とネットワーク構成が一致することを確認してください。
バージョンロック:
スクリプトモードで依存関係をインストールする場合は、常にpip install pandas==1.5.3のようにバージョンを指定してください。これにより、上流ライブラリの更新による予期しない動作を防ぐことができます。ロールバック計画: イメージの更新後に本番タスクが失敗した場合:
タスク公開履歴を介してロールバックします。
スケジューリング構成で以前の安定バージョンに戻します。
例
この例では、PyODPS でカスタムイメージを使用して MaxCompute テーブルの単語分割を実行する方法を示します。MaxCompute テーブルの列のテキストを分割し、結果を別のテーブルに保存して、下流のスケジューリングに利用します。
テストデータを作成します。
MaxCompute リソースがアタッチされた DataWorks ワークスペースを作成します。詳細については、「ワークスペースの作成」、「ワークスペースへのデータソースの追加またはクラスターの登録」、および「計算リソースの関連付け」をご参照ください。
Data Studio で、ODPS ノード (レガシー) または MaxCompute SQL ノード (新バージョン) を作成します:
説明この例では、スケジューリングパラメーターを使用します。[スケジューリング] ペインで、パラメーター名を
bday、値を$[yyyymmdd]に設定します。ノードを保存して公開します。
カスタムイメージを作成します。
これらの主要なパラメーターでカスタムイメージを作成します:
イメージ名/ID:
dataworks_pyodps_task_pod(DataWorks 公式 PyODPS イメージ) を選択しますサポートされるタスクタイプ:
PyODPS2およびPyODPS 3。インストールパッケージ:
Python 3を選択し、jiebaを追加します。
イメージを公開して割り当てます。
イメージを公開し、ワークスペースに割り当てます。詳細については、「イメージのテストと公開」および「イメージをワークスペースに割り当てる」をご参照ください。
PyODPS タスクを作成します。
Data Studio で、このコードで PyODPS3 ノードを作成します
右側のペインでスケジューリングパラメーターを構成します:
スケジューリングパラメーター:
bday=$[yyyymmdd]。リソースグループ: イメージテストに使用したのと同じサーバーレスグループ。
イメージ: 公開したカスタムイメージ。
ノードをデバッグします。
レガシーバージョン: [パラメーター付きで実行] (
) をクリックし、設定を構成して、[実行] をクリックします。新しいバージョン: [デバッグ設定] ペインで構成し、ツールバーの [実行時間] をクリックします
(オプション) SQL クエリで結果を確認します:
-- <partition_date> を実際の日付に置き換える SELECT * FROM participle_tb WHERE ds=<partition_date>;PyODPS ノードを本番環境に公開します。
説明Data Studio でのイメージの変更は、自動的に本番環境に同期されません。変更を有効にするには、タスクを公開する必要があります。詳細については、「ノードのデプロイ」または「ノードまたはワークフローのデプロイ」をご参照ください。
永続イメージをビルドします。
カスタムイメージを永続イメージとしてビルドします。詳細については、「永続イメージのビルド」をご参照ください。
関連ドキュメント
付録: インストールコマンドリファレンス
[スクリプト] モードを使用してインストールコマンドを構成する場合:
PyODPS 2 の依存関係の場合:
pip install <package_name>説明pip のアップグレードを求められた場合は、
pip install --upgrade pipを実行します。PyODPS 3 の依存関係の場合:
/home/tops/bin/pip3 install <package_name>説明pip のアップグレードを求められた場合は、
/home/tops/bin/pip3 install --upgrade pipを実行します。エラー
/home/admin/usertools/tools/cmd-0.sh: line 3: /home/tops/bin/python3: No such file or directoryが発生した場合は、チケットを送信して権限をリクエストしてください。
Python ミラーソース
必要に応じて、これらのパブリックミラーに切り替えます:
組織
ミラー URL
Alibaba Cloud (Aliyun)
https://mirrors.aliyun.com/pypi/simple/重要Alibaba Cloud ミラーにはインターネットアクセスは必要ありません。
Tsinghua University
https://pypi.tuna.tsinghua.edu.cn/simpleUSTC
https://pypi.mirrors.ustc.edu.cn/simple/
> [ワークスペースの変更]