You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Databricks Asset Bundles时,如何配置从正确卷加载初始化脚本以实现集群访问AWS CodeArtifact

使用Databricks Asset Bundles时,如何配置从正确卷加载初始化脚本以实现集群访问AWS CodeArtifact

我完全明白你的需求——给集群绑定AWS实例角色后,通过初始化脚本配置pip,让它能顺利从私有CodeArtifact仓库拉取Python包。看了你的配置,主要是初始化脚本的格式写错了,还有一些缩进和逻辑问题,我来一步步帮你修正:


1. 先修正初始化脚本的配置格式

你当前的init_scripts写法不符合Databricks Asset Bundles的规范,正确引用DBFS中脚本的方式应该使用dbfs类型,并且路径要写成dbfs:/开头(而非dbfs://)。修正后的片段如下:

new_cluster:
  init_scripts:
    - dbfs:
        destination: dbfs:/Workspace/Users/Myself/init.sh

2. 修复Job配置的缩进错误

你的原配置里把tasks嵌套在了tags下面,这会导致配置完全不生效——tasks是Job的顶层属性,应该和email_notifications、description、tags同级。

3. 初始化脚本的核心内容示例

你的脚本需要完成两个关键动作:获取CodeArtifact的授权令牌,配置pip使用这个令牌访问私有仓库。以下是符合需求的脚本模板(记得替换成你的AWS环境参数):

#!/bin/bash
# 替换为你的CodeArtifact实际信息
DOMAIN="你的codeartifact域名"
DOMAIN_OWNER="你的AWS账号ID"
REGION="你的AWS区域"
REPO_NAME="你的codeartifact仓库名"

# 通过实例角色获取CodeArtifact授权令牌(有效期12小时)
CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --domain-owner $DOMAIN_OWNER --region $REGION --query authorizationToken --output text)

# 配置pip使用CodeArtifact作为默认索引源
pip config set global.index-url "https://aws:${CODEARTIFACT_AUTH_TOKEN}@${DOMAIN}-${DOMAIN_OWNER}.d.codeartifact.${REGION}.amazonaws.com/pypi/${REPO_NAME}/simple/"

把这个脚本上传到你指定的DBFS路径,同时确保集群绑定的实例角色(${var.aws_instance-profile-codeartifact-access})拥有codeartifact:GetAuthorizationToken以及访问目标仓库的权限。

4. 修正后的完整Job配置

整合所有修正后,你的最终配置应该是这样的(还帮你修复了循环依赖的问题):

resources:
  jobs:
    staging-test:
      name: staging-test
      email_notifications:
        on_failure:
          - ${var.mail}
      description: Staging job for ${var.package}
      tags:
        stage: "staging"
        version: ${var.package}
      # tasks移到顶层,与tags同级
      tasks:
        - task_key: test-from-wheel
          python_wheel_task:
            entry_point: run # Entry point of the wheel
            package_name: 你的wheel包名称 # 补充实际包名
            parameters: ["-a", "test_run", "-m", "model"]
          new_cluster:
            init_scripts:
              - dbfs:
                  destination: dbfs:/Workspace/Users/Myself/init.sh
            instance_pool_id: ${var.instance-pool-id}
            spark_version: 15.4.x-scala2.12
            autoscale:
              min_workers: 1
              max_workers: 4
            aws_attributes:
              instance_profile_arn: ${var.aws_instance-profile-codeartifact-access}
          libraries:
            # Using the wheel file from code artifact
            - pypi:
                package: ${var.package}
                repo: ${var.codeartifact-repo}

备注:内容来源于stack exchange,提问作者PlagTag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:13:06