如需在 Dataform 仓库中安装专用 NPM 软件包并使用该软件包开发 SQL 工作流,您需要先在 Dataform 中对该软件包进行身份验证。代码库中的第一个私有软件包和代码库中的后续私有软件包的身份验证流程不同。
准备工作
所需的角色
如需获得在 Dataform 中对私有 NPM 软件包进行身份验证所需的权限,请让您的管理员向您授予代码库和工作区的 Dataform Editor (roles/dataform.editor
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
对 Dataform 代码库中的第一个私有软件包进行身份验证
如需在 Dataform 中对专用 NPM 软件包进行身份验证,您需要先执行以下操作,然后才能在 Dataform 代码库中安装第一个专用 NPM 软件包:
创建一个 Secret Manager Secret,专用于在 Dataform 代码库中存储专用 NPM 软件包的身份验证令牌。
- 将从 NPM 注册库中获取的软件包身份验证令牌添加到 Secret。
您需要将私有 NPM 软件包的所有身份验证令牌存储在代码库中的单个 Secret 中。您需要为每个 Dataform 代码库创建一个专用 Secret。Secret 必须采用 JSON 格式。
将 Secret 上传到 Dataform 代码库。
创建
.npmrc
文件,并将软件包的身份验证令牌添加到该文件中。.npmrc
文件中的身份验证令牌必须与上传的 Secret 中的身份验证令牌一致。
对私有 NPM 软件包进行身份验证后,您可以在 Dataform 代码库中安装该软件包。
创建用于对私有软件包进行身份验证的 Secret
如需对 Dataform 代码库中的私有 NPM 软件包进行身份验证,您需要创建一个 Secret Manager Secret,并在该 Secret 中为您要安装在 Dataform 代码库中的所有私有软件包定义身份验证令牌。为每个专用 NPM 软件包定义一个身份验证令牌,并将所有身份验证令牌存储在每个代码库的单个密钥中。Secret 必须采用 JSON 格式。
如需为私有 NPM 软件包创建包含身份验证令牌的 Secret,请按以下步骤操作:
在 Secret Manager 中,创建 Secret。
- 在 Secret 值字段中,按以下格式输入一个或多个身份验证令牌:
{ "AUTHENTICATION_TOKEN_NAME": "TOKEN_VALUE" }
替换以下内容:
- AUTHENTICATION_TOKEN_NAME:令牌的唯一名称,用于标识其要对其进行身份验证的软件包
- TOKEN_VALUE:从 NPM 注册表获取的身份验证令牌的值
向您的 Dataform 服务账号授予对 Secret 的访问权限。
您的 Dataform 服务账号采用以下格式:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
- 授予访问权限时,请务必向您的 Dataform 服务账号授予
roles/secretmanager.secretAccessor
角色。
- 授予访问权限时,请务必向您的 Dataform 服务账号授予
将用于对私有软件包进行身份验证的密钥上传到 Dataform 代码库
在首次在 Dataform 代码库中安装私有 NPM 软件包之前,请将包含软件包身份验证令牌的密钥上传到代码库。
如需将包含专用 NPM 软件包身份验证令牌的密钥上传到 Dataform 代码库,请按以下步骤操作:
在 Google Cloud 控制台中,进入 Dataform 页面。
选择要安装私有 NPM 软件包的代码库。
在代码库页面上,依次点击设置 > 配置私有 NPM 软件包。
在添加 NPM 软件包 Secret 令牌窗格中,从 Secret 下拉菜单中,选择包含专用 NPM 软件包身份验证令牌的 Secret。
点击保存。
创建 .npmrc
文件以对私有软件包进行身份验证
如需在 Dataform 仓库中对专用 NPM 软件包进行身份验证,您需要在仓库中创建顶级 .npmrc
文件。您需要在 .npmrc
文件中存储要安装在代码库中的所有专用 NPM 软件包的身份验证令牌。.npmrc
文件中的身份验证令牌必须与上传到代码库的 Secret 中的身份验证令牌一致。如需详细了解 .npmrc
文件,请参阅 npmrc 文档。
如需在代码库中创建顶级 .npmrc
文件,请按以下步骤操作:
在 Google Cloud 控制台中,进入 Dataform 页面。
选择要安装私有 NPM 软件包的代码库,然后选择一个工作区。
在文件窗格中,点击
更多菜单,然后点击创建文件。在创建新文件窗格中,执行以下操作:
在添加文件路径字段中,输入
.npmrc
。点击创建文件。
将身份验证令牌添加到 Dataform 代码库中的 .npmrc
文件
如需对 Dataform 代码库中的专用 NPM 软件包进行身份验证(该代码库中已包含包含软件包身份验证令牌的密钥和 .npmrc
文件),您需要将专用软件包的身份验证令牌添加到代码库中的 .npmrc
文件。
在 .npmrc
文件中,您需要定义 NPM 注册库的范围,并为在该范围内访问的专用软件包添加身份验证令牌。如需详细了解 .npmrc
文件,请参阅 npmrc 文档。
.npmrc
文件中的身份验证令牌必须与上传到代码库的 Secret 中的身份验证令牌一致。
如需向 Dataform 代码库中的 .npmrc
文件添加身份验证令牌,请按以下步骤操作:
在 Google Cloud 控制台中,进入 Dataform 页面。
选择要安装私有 NPM 软件包的代码库,然后选择一个工作区。
在 Files 窗格中,选择
.npmrc
文件。在
.npmrc
文件中,使用以下格式为私有软件包定义 NPM 注册表范围和身份验证令牌:
@REGISTRY-SCOPE:registry=NPM-REGISTRY-URL
NPM-REGISTRY-URL:_authToken=$AUTHENTICATION-TOKEN
替换以下内容:
- REGISTRY-SCOPE:您要将身份验证令牌应用到的 NPM 注册表范围
- NPM-REGISTRY-URL:您的 NPM 注册表的网址,例如
https://npm.pkg.github.com
AUTHENTICATION-TOKEN:私有 NPM 软件包的身份验证令牌。
.npmrc
文件中的身份验证令牌必须与上传的 Secret 中的身份验证令牌一致。身份验证令牌作为环境变量在.npmrc
文件中提供,因此请务必添加${
开头括号和}
结尾括号。您可以输入多个身份验证令牌。
以下代码示例展示了添加到 Dataform 代码库的 .npmrc
文件中的私有 NPM 软件包的身份验证令牌:
@company:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${AUTHENTICATION_TOKEN}
在 Dataform 代码库中对后续私有软件包进行身份验证
如需在已包含包含软件包身份验证令牌和 .npmrc
文件的密钥的 Dataform 代码库中对专用 NPM 软件包进行身份验证,请按以下步骤操作:
在 Secret Manager 中,列出 Secret,然后选择用于存储代码库私有 NPM 软件包的身份验证令牌的 Secret。
向 Secret 添加新版本。
默认情况下,Dataform 会使用最新版本的 Secret。
- 将私密软件包的身份验证令牌添加到 Secret 值,格式如下:
{ "AUTHENTICATION_TOKEN_NAME": "TOKEN_VALUE" }
替换以下内容:
- AUTHENTICATION_TOKEN_NAME:令牌的唯一名称,用于标识其要对其进行身份验证的软件包
- TOKEN_VALUE:从 NPM 注册表获取的身份验证令牌的值
您可以一次添加多个身份验证令牌。
在 Dataform 中,将身份验证令牌添加到代码库中的
.npmrc
文件。
对私有 NPM 软件包进行身份验证后,您可以在 Dataform 代码库中安装该软件包。
后续步骤
- 如需了解如何在 Dataform 仓库中安装软件包,请参阅在 Dataform 中安装软件包。
- 如需详细了解 Dataform 中的软件包,请参阅使用软件包在多个代码库中重复使用代码。
- 如需了解如何在 Dataform 中创建自己的软件包,请参阅在 Dataform 中创建软件包。
- 如需了解如何在 Dataform 中使用开源软件包,请参阅在 Dataform 中使用缓慢变化的维度。