Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

カスタムタスクでネットワークアクセスを有効にする

本機能の提供について

カスタムタスクのネットワークアクセスは、デフォルトではオフになっています。 この機能を有効にする方法については、DataRobotの担当者または管理者にお問い合わせください。

機能フラグ:カスタムタスクでネットワークアクセス設定を有効にする、カスタムハイパーパラメーターを有効にする

プレビュー版の機能です。カスタムタスクからパブリックネットワークへのアクセスを設定できるようになりました。 このページのコード例では、資格情報を持つAPIエンドポイントを使用してネットワークアクセスを確保する二値推定タスクを紹介しています。

資格情報IDの取得

ネットワークアクセスを設定する前に、資格情報IDを指定する必要があります。 独自の資格情報を設定した後、DataRobotのユーザープロフィールを開き、資格情報管理を選択します。

資格情報を選択します。 選択すると、資格情報IDをコピーできます。 IDはURLの/credentials-management/に続く文字列です。

資格情報の設定

model-metadata.yamlに資格情報を追加する方法については、以下の例を参照してください。 DRUMリポジトリにあるサンプルファイルにアクセスできます。 typeSchemaはDRUMリポジトリの別の例からコピーしたものです。

例: model-metadata.yaml
name: 13_python_credentials_and_internet_access
type: training
environmentID: 5e8c889607389fe0f466c72d
targetType: binary

# These must be actual DataRobot credentials that the author owns
userCredentialSpecifications:
  - key: MY_CREDENTIAL  # A legal POSIX env var key
    valueFrom: 655270e368a555f026e2512d  # A credential ID from DataRobot for which you are the owner
    reminder: my super-cool.com/api api-token  # Optional: any string value that you for a reminder

typeSchema:
  input_requirements:
    - field: data_types
      condition: IN
      value:
        - NUM
    - field: number_of_columns
      condition: NOT_LESS_THAN
      value: 2
    - field: sparse
      condition: EQUALS
      value: SUPPORTED
# This requirement is only ignored because this is an example using test data 

パブリックIPアドレスへのアクセスを有効にする

カスタムタスク内からネットワークにアクセスするには、カスタムタスクバージョンでoutgoingNetworkPolicyフィールドを使用して明示的に有効にする必要があります。 新しいバージョンは、別のものを指定しない限り、前のバージョンのoutgoingNetworkPolicyを継承します。 これを行うには、REST APIを使用する必要があります。

本機能の提供について

カスタムタスクのネットワークアクセスには、DataRobotの早期アクセスPythonクライアントを使用する必要があります。 早期アクセスクライアントは、pip install datarobot_early_accessを使ってインストールできます。

from datarobot.enums import CustomTaskOutgoingNetworkPolicy

task_version = dr.CustomTaskVersion.create_clean(
    custom_task_id=custom_task_id,
    base_environment_id=execution_environment.id,
    folder_path=custom_task_folder,
    outgoing_network_policy=CustomTaskOutgoingNetworkPolicy.PUBLIC,
) 

詳細については、Pythonクライアントのドキュメントを参照してください。

DRUMでローカルにテストする

DRUMで資格情報を使ってテストしたい場合は、シークレット用のディレクトリを作成し、そこにすべてのシークレットを置くことで、偽のデータを作成できます。 DRUMリポジトリでこの例を参照できます。

コマンド例

drum fit -cd task_templates/2_estimators/13_python_credentials_and_internet_access/ \
--input tests/testdata/10k_diabetes.csv --target-type binary --target readmitted \
--user-secrets-mount-path task_templates/2_estimators/13_python_credentials_and_internet_access/ \
--verbose --logging-level info --show-stacktrace 

シークレットの詳細

各シークレットファイルには、同名の対応する資格情報が必要です。 シークレットファイルの内容は、いずれかのシークレットオブジェクトにキャストできるJSON文字列である必要があります。 すべてのシークレットオブジェクトがcustom_model_runner/datarobot_drum/custom_task_interfaces/user_secrets.pyにあります。 シークレットの回答にはcredential_typeが含まれている必要があります。これは、datarobot_drum.custom_task_interfaces.user_secrets.SecretTypeの別名です。ただし、値はすべて英小文字である必要があります(SecretType.SNOWFLAKE_KEY_PAIR_USER_ACCOUNT{"credential_type": "snowflake_key_pair_user_account"}に対応します)。

例:

@dataclass(frozen=True)
class SnowflakeKeyPairUserAccountSecret(AbstractSecret):
    username: Optional[str]
    private_key_str: Optional[str]
    passphrase: Optional[str] = None
    config_id: Optional[str] = None 

次のようになります。

{
  "credential_type": "snowflake_key_pair_user_account",
  "username": "bob@bob.com",
  "private_key_str": "shhhhhhhh"
} 

更新しました April 2, 2024