Data Studio では、個人開発環境からイメージを作成し、データ開発や他の個人開発環境で使用できます。
背景情報
個人開発環境での開発およびテスト中に、さまざまなサードパーティの依存関係が必要になる場合があります。必要な依存関係を環境にインストールし、その環境からカスタムイメージを作成して、他の個人開発環境やワークスペースと共有できます。
個人開発環境から作成されたイメージは、ノートブック、Python、および シェル タスクタイプをサポートします。イメージ作成後は、タスクタイプやその他の構成を変更できません。
前提条件
-
VPC:VPC の作成。
-
DataWorks:個人開発環境インスタンスの作成および VPC へのアタッチ。
-
Alibaba Cloud Container Registry (ACR):
-
Enterprise Edition インスタンス、名前空間、および イメージリポジトリ を作成し、VPC アクセスの制御を構成することで、ACR をセットアップします。
-
Cloud DNS PrivateZone を有効化します。請求情報については、「製品の課金」をご参照ください。
-
-
個人開発環境インスタンスにアタッチされた VPC、Alibaba Cloud Container Registry (ACR) にアタッチされた VPC、および イメージ公開用のテストリソースグループにアタッチされた VPC は、同一の VPC である必要があります。
-
個人開発環境がインターネットからサードパーティの依存関係をフェッチする必要がある場合は、VPC のインターネットアクセスを構成する必要があります。詳細については、「インターネット NAT ゲートウェイの SNAT 機能を使用したインターネットアクセス」をご参照ください。
ステップ 1:個人開発環境へのアクセス
-
DataWorks コンソールのワークスペースページに移動します。上部ナビゲーションバーで目的のリージョンを選択し、目的のワークスペースを見つけ、操作 列で を選択します。
-
ページ上部で 個人開発環境 · 選択 をクリックし、既存の個人開発環境インスタンスを選択します。
ステップ 2:インスタンスからのイメージ作成
-
インスタンスからイメージを作成する前に、個人開発環境を強化します。
重要個人開発環境を強化する際には、オープンソースの依存関係をインストールするか、サードパーティの依存関係をインストールできます。
-
個人開発環境の構成が完了したら、ページ上部の 個人開発環境 · 選択 ドロップダウンリストをクリックし、インスタンス管理 を選択してインスタンス一覧パネルを開きます。
-
カスタムイメージを作成します。
インスタンス一覧で対象のインスタンスを見つけ、操作 列の 操作 をクリックします。前提条件 セクションで準備したリソースを使用して、ACR インスタンス、名前空間、イメージリポジトリ、イメージバージョン、および タスクタイプ を構成します。
パラメーター
説明
イメージ名
DataWorks イメージのカスタム名を入力します。
ACR インスタンス
ACR インスタンスを選択します。ACR インスタンスの作成方法については、「Enterprise Edition インスタンスの作成」をご参照ください。
名前空間
ACR インスタンスの名前空間を選択します。詳細については、「名前空間の作成」をご参照ください。
イメージリポジトリ
ACR インスタンスのイメージリポジトリを選択します。詳細については、「イメージリポジトリの作成」をご参照ください。
イメージバージョン
カスタムイメージバージョンを入力します。
MaxCompute への同期
デフォルト値は いいえ です。
説明このオプションは、選択した ACR インスタンス が Standard Edition 以上の場合にのみ利用可能です。
-
はい を選択すると、DataWorks カスタムイメージが生成されます。このイメージを DataWorks で公開すると、MaxCompute イメージとしてもビルドされます。詳細については、「個人開発環境から MaxCompute イメージを作成する」をご参照ください。
-
いいえ を選択すると、DataWorks カスタムイメージのみが生成され、MaxCompute イメージとしてはビルドされません。
タスクタイプ
イメージを使用できるタスクタイプを選択します。
-
ノートブック
-
Python
-
シェル
-
-
構成が完了したら、確認 をクリックしてイメージの作成を開始します。
重要-
イメージ作成時に、個人開発環境インスタンスにアタッチされた VPC と Alibaba Cloud Container Registry (ACR) にアタッチされた VPC が同一であることを確認してください。
-
イメージ作成プロセスは、イメージサイズやネットワーク状況によって 1~5 分かかる場合があります。
-
一度作成されたイメージは、イメージ管理で変更できません。
-
-
イメージ作成が完了するまで待ちます。
ステップ 3:カスタムイメージの公開
カスタムイメージが作成されたら、DataWorks コンソール に移動し、 タブに移動します。対象のイメージを見つけ、テスト および 公開 を実行します。テストおよび公開時の注意点は以下のとおりです。
-
カスタムイメージをテストする際は、サーバーレスリソースグループを選択します。
-
テストおよび公開に使用する サーバーレスリソースグループにアタッチされた VPC は、Alibaba Cloud Container Registry (ACR) で構成された VPC と同じである必要があります。
-
テストに合格した イメージのみを公開できます。
-
カスタムイメージがインターネットからサードパーティのパッケージをフェッチする必要があり、テストがタイムアウトまたは失敗する場合は、テストリソースグループ にアタッチされた VPC がインターネットアクセス可能かどうかを確認してください。VPC のインターネットアクセスを構成するには、「インターネット NAT ゲートウェイの SNAT 機能を使用したインターネットアクセス」をご参照ください。
ステップ 4:ワークスペースへのイメージ割り当て
-
DataWorks コンソールの タブで、公開済み のカスタムイメージを見つけます。
-
対象イメージの 操作 列で、 をクリックして、カスタムイメージをワークスペースにバインドします。
ステップ 5:カスタムイメージの使用
イメージをワークスペースに割り当てた後、ノートブック、Python、または シェル ノードの開発に使用できます。以下の手順では、Python ノードを例として説明します。
-
データ開発ページの左側にある プロジェクトディレクトリ ペインで、
アイコンをクリックし、 を選択して Python ノードを作成します。 -
ノードの開発が完了したら、右側で デバッグの構成 をクリックします。リソースグループ を構成し、Python コードで必要な イメージ を選択します。
また、コンピューティング CU(例:
0.5)を設定します。利用可能なイメージがない場合は、新規イメージ をクリックして作成できます。 -
アイコンをクリックして Python コードをデバッグします。 -
デバッグ実行が成功したら、スケジューリング設定 をクリックします。スケジューリング戦略タブで、ノードの定期スケジュールの イメージ を設定します。
説明-
スケジューリング設定 で構成されたイメージは、デバッグの構成 で構成されたイメージと同一である必要があります。
-
ノートブックノードの場合、スケジューリング設定 でのみイメージを構成できます。
-
-
スケジューリング設定が完了したら、Python ノードを 保存 および 公開 できます。
次のステップ
永続イメージ:カスタムイメージを永続イメージにビルドできます。これにより、各実行ごとにイメージ環境を再デプロイする必要がなくなります。同じ環境を再利用することで、一貫性が保たれ、ランタイム、コンピューティング、トラフィックコストが削減されます。詳細については、「永続イメージのビルド」をご参照ください。
付録:個人開発環境の強化
DataWorks 個人開発環境のデフォルトの依存関係では、すべての開発ニーズを満たせない場合があります。追加の依存関係をインストールして環境を強化できます。
オープンソースの依存関係のインストール
個人開発環境インスタンスにオープンソースの依存関係をインストールできます。以下の例では、jieba ライブラリをインストールします。
-
データ開発ページの左下隅にある
アイコンをクリックしてターミナルを開きます。 -
ターミナルで、次のコマンドを実行して jieba ライブラリをインストールします。
pip install jieba● /mnt/workspace> pip install jieba Looking in indexes: https://mirrors.cloud.aliyuncs.com/pypi/simple Collecting jieba Downloading https://mirrors.cloud.aliyuncs.com/pypi/packages/c6/cb/18eeb235f833b726522d7ebed54f2278ce28ba9438e3135ab0278d9792a2/jieba-0.42.1.tar.gz (19.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.2/19.2 MB 101.0 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: jieba Building wheel for jieba (pyproject.toml) ... done Created wheel for jieba: filename=jieba-0.42.1-py3-none-any.whl size=19314508 sha256=5d2a212c7aaa36057e04dde6c183c1d23da40d2452831dd8b2d00482d1a963cd Stored in directory: /root/.cache/pip/wheels/70/b3/5f/b9d1821b0e0b90640bf536c9f79f039cafbec7de737a9b8c49 Successfully built jieba Installing collected packages: jieba Successfully installed jieba-0.42.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv -
jieba ライブラリをインストールしたら、 ディレクトリに
.pyファイルを作成します。Python ファイルに次のコードを編集して保存します。import sys import jieba '''システム入力パラメーター arg を取得''' for arg in sys.argv: print(f"argv: {arg}") '''jieba クラスを呼び出して入力データをトークン化し、出力を表示''' seg_list = jieba.cut(sys.argv[1], cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) print('finish')編集が完了したら、
をクリックして Python コードを保存します。 -
ターミナルで、次のコマンドを実行して Python ファイルを実行します。
python file_name.py "我是大数据治理开发平台文档"/mnt/workspace> python xxx.py "我是大数据治理开发平台文档" argv: xxx.py argv: 我是大数据治理开发平台文档 デフォルト辞書からプレフィックス辞書を構築中... キャッシュ /tmp/jieba.cache からモデルをロード中 モデルのロードに 0.914 秒かかりました。 プレフィックス辞書の構築が正常に完了しました。 デフォルトモード: 我/ 是/ 大/ 数据/ 治理/ 开发/ 平台/ 文档 finish
正常に実行されれば、jieba ライブラリが正しくインストールされていることが確認できます。
サードパーティの依存関係のインストール
Git によるクローン
git clone を使用して Python プロジェクトをクローンするには、VPC のパブリックネットワークアクセスを構成する必要があります。詳細については、「インターネット NAT ゲートウェイの構成」をご参照ください。
-
データ開発ページの左下隅にある
アイコンをクリックしてターミナルを開きます。 -
ターミナルで、次のコマンドを実行してワークスペースフォルダに移動します。
cd /mnt/workspace -
ワークスペースフォルダに Git から Python プロジェクトをクローンします。
# URL をご自身のリポジトリ URL に置き換えてください。 git clone https://github.com/example/Example-Python.git -
クローンした Python プロジェクトをインストールします。
-
クローンした Python プロジェクトディレクトリに移動します。
cd Example-Python -
Python プロジェクトをインストールします。
pip install ./mnt/workspace/xxx>> pip install . Looking in indexes: https://mirrors.cloud.aliyuncs.com/pypi/simple Processing /mnt/workspace/xxx Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: requests>=2.24.0 in /usr/local/lib/python3.11/site-packages (from my-python-lib==0.1) (2.32.3) Requirement already satisfied: numpy in /usr/local/lib/python3.11/site-packages (from my-python-lib==0.1) (1.26.4) Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (3.4.0) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (2.2.3) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (2024.8.30)
-
プロジェクトのアップロード
-
ローカルの Python プロジェクトを ディレクトリにアップロードし、ターミナルを使用してプロジェクトフォルダに移動します。
cd /mnt/workspace/"python_project_folder" -
次のコマンドを実行して Python プロジェクトをインストールします。
pip install ./mnt/workspace/xxx>> pip install . Looking in indexes: https://mirrors.cloud.aliyuncs.com/pypi/simple Processing /mnt/workspace/xxx Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: requests>=2.24.0 in /usr/local/lib/python3.11/site-packages (from my-python-lib==0.1) (2.32.3) Requirement already satisfied: numpy in /usr/local/lib/python3.11/site-packages (from my-python-lib==0.1) (1.26.4) Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (3.4.0) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (3.10) Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (2.2.3) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests>=2.24.0->my-python-lib==0.1) (2024.8.30)
プログラムのアップロード
-
ローカルの Python プログラムの圧縮パッケージを ディレクトリにアップロードします。その後、ターミナルを使用してパッケージを解凍し、Python のコンパイルパスを確認します。
cat 'decompressed_python_project_name'/bin/pip -
Python のコンパイルパスを作成します。
# 確認した Python コンパイルパスを作成します。 mkdir -p 'python_compile_path_found' -
解凍したフォルダを、ビルド時に Python が使用したコンパイルパスに移動します。
mv 'decompressed_python_project_name' /'python_compile_path_found' -
デフォルトの Python パッケージを、ご自身の Python プログラムに置き換えます。
for src in idle3 pydoc3 python3 python3-config pip3; do \ dst="$(echo "$src" | tr -d 3)"; \ [ -s "/usr/local/bin/$src" ]; \ [ ! -e "/usr/local/bin/$dst" ]; \ mv /usr/local/bin/$dst /usr/local/bin/${dst}_bak ln -svT "python_compile_path_found/bin/$src" "/usr/local/bin/$dst"; \ done
インストール後、個人開発環境でコードを実行・デバッグして、サードパーティの依存関係が期待どおりに動作することを確認してください。
> 所属ワークスペースの変更