问题标签 [google-artifact-registry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
282 浏览

gradle - 如何在 init 文件中定义要发布到的 Artifact Registry 存储库?

我正在使用 Gradle 将工件部署到 Google 的工件注册表。

通常我会在文件的“发布”部分指定我想要将构建的工件部署到的存储库build.gradle- 而不是那样做,我想在init.gradle稍后在 CI 中注入的文件中定义存储库-过程,以便工件注册表的 URL 不会最终出现在 Git 存储库中。

我想出了一种方法来做到这一点:

但是因为我需要 Artifact Registry Gradle 插件,所以我收到了artifactregistry不支持协议的错误。

文档说明要在 中使用插件init.gradle,需要插入以下内容:

但我似乎无法让它工作。我一定已经尝试过这两个片段的任何可能组合,但我的知识已经结束了。

如果有人能告诉我如何安排这两个片段,以便我可以在init.gradle文件中指定要发布到的存储库(或者可能有完全不同的方法),那将非常有帮助!

0 投票
0 回答
233 浏览

google-cloud-platform - 如何从 Artifact Registry 自动部署到 Compute Engine?

语境

我正在开发一个应用程序。该代码位于 Cloud Source Repository 中。我已经使用 Cloud Build 设置了构建触发器,这样当我推送新提交时,应用程序会自动构建:它是容器化的,并且图像被推送到 Artifact Registry。

我还有一个带有容器优化操作系统的 Compute Engine 虚拟机实例。它设置为使用我的应用程序的容器图像。因此,当我启动 VM 时,它会从 Artifact Registry 中提取最新的映像并运行容器。

问题

因此,目前,部署涉及两个步骤:

  1. 推送新的提交,这会更新 Artifact Registry 中的容器。
  2. 重新启动我的 VM,这会从 Artifact Registry 中提取新容器。

有没有办法将这两个步骤结合起来?

构建触发器检测代码更改以触发构建。是否有类似的方法可以自动触发从 Artifact Registry 到 Compute Engine 的部署?

谢谢你。

0 投票
1 回答
118 浏览

google-artifact-registry - 无效的存储库类型 PYTHON。有效类型是 PYPI

我已经(使用 terraform 资源google_artifact_registry_repository )在Google Artifact Registry上创建了一个 python 存储库。这是我创建它的 terraform 代码:

这是那个存储库:

在此处输入图像描述

我现在正在关注https://cloud.google.com/artifact-registry/docs/python/quickstart上的快速入门,特别是指示我发布的配置身份验证部分gcloud artifacts print-settings python。我实际上稍微修改一下以发布:

我得到错误:

我没有将存储库类型指定为该命令的一部分,因此我只能假设“存储库类型 PYTHON”是指存储库的格式:

在此处输入图像描述

但是,鉴于存储库已成功创建并且 PYTHON 是(根据terraform 资源文档)存储库格式的有效值,我正在努力理解这里的问题所在。

我会很感激任何建议。

0 投票
0 回答
203 浏览

terraform-provider-gcp - google_artifact_registry_repository 似乎忽略了“depends_on”属性?

我正在尝试创建一个新项目,然后在新项目中创建一个新的 Google Artifact Registry。以下是 Terraform 资源:

这几乎总是首先失败,terraform apply并显示以下错误消息:

立即再次运行相同的命令总是会成功并显示以下消息:

属性的作用depends_on = [google_project_service.artifactregistry_googleapis_com]不支持在创建工件存储库之前等待一切准备就绪?

0 投票
0 回答
86 浏览

centos7 - Errno 14 HTTPS 错误 500 - 尝试下载包时出现内部服务器错误

我在 Google Artifact Registry 中有一个公共 yum 存储库,其中包含一个 yum 包。我试图将软件包安装到 EC2 服务器(ultraserve-centos-7.4)中。我已经创建了一个本地 yum 存储库文件/etc/yum.repos.d/来访问我的 yum 存储库。

然后用sudo yum makecache. 元数据缓存已成功创建。

然后,当我尝试下载并安装包时,我得到:

它知道要准确下载哪个包/版本,但无法下载。谁能帮我解决到底出了什么问题?或者我错过了什么?

0 投票
1 回答
355 浏览

google-cloud-platform - 对工件存储库的密钥环身份验证不起作用(GCP)

为了设置对私有 pip 存储库的密钥环身份验证,我按照设置对 Python 包存储库的身份验证 - 使用密钥环进行身份验证的步骤进行操作。

我选择使用环境变量进行身份验证。我验证它设置正确:

我还使用gcloud auth login. 登录的用户是对 Artifact Registry 具有写入权限的服务帐户的所有者。

不幸的是,我在尝试安装包时得到以下输出:</p>

我希望密钥环在这一步处理身份验证。对于确定此问题的原因有什么建议吗?

0 投票
2 回答
363 浏览

google-cloud-platform - gcloud auth 中的访问范围是什么,为什么它们在 Cloud Shell 和我的本地计算机中有所不同?

按照Google Artifact Registry Quickstart中的说明使用时,我看到了权限错误。如该问题所述,问题似乎归结为访问令牌上缺少范围。在我的本地 shell 中,范围是这些(如 所示):docker pushhttps://www.googleapis.com/oauth2/v1/tokeninfo?access_token=<token>

当我在 Cloud Shell 中运行相同的步骤序列时,访问令牌上有更多范围:

我无法确定我的 Cloud Shell 配置和我的本地配置之间的差异可能会导致这种范围差异。这些命令都具有相同的输出:

gcloud config list显示这些差异:

问题:

  1. 无论如何,这里的范围是什么?它们与分配给项目负责人 ( ) 的角色有什么关系example@stackoverflow.com
  2. 什么可能导致 Cloud Shell 与本地计算机上的范围不同?如何修复它,以便我可以在本地正确访问 Artifact Registry?

编辑

为了澄清,这里是我正在运行的命令和我看到的错误,它与上面引用的 SO 问题完全相同。命令直接取自 [Artifact Registry Quickstart] ( https://cloud.google.com/artifact-registry/docs/docker/quickstart#gcloud )。这个问题本来是关于范围的,但似乎这些可能不是我的问题。

0 投票
1 回答
33 浏览

google-artifact-registry - Google 工件注册表是否支持通用包格式?

Jfrog 工件支持存储库,我们可以在其中保存任何通用类型的工件,即任何文件扩展名。谷歌工件注册表是否也支持这种存储库创建?

0 投票
1 回答
261 浏览

npm - Google Artifact Registry:即使在包删除后也无法发布具有相同版本的包

我正在尝试将 npm 包发布到谷歌工件注册表(GAR)。

已经发布了一个相同版本的包,但是我已经从 GAR 中手动删除了它。

但仍然无法发布包。

看起来它已经被缓存在某个地方。如果是这样,是否有可能清除缓存?

0 投票
1 回答
222 浏览

npm - 无法安装我在 GCP 中发布到 npm 注册表的作用域包

我将几个 npm 包发布到托管在 GCP 中的私有 npm 注册表中,我可以看到注册表中的所有版本。但是我无法下载该软件包,因为安装命令会引发 E404。

NPM 在尝试下载页面时抛出一个通用的 404 错误:

打开要解析的 url 会返回此错误:

另外,我检查了一下,我的帐户实际上确实具有 downloadArtifacts 角色。我无法弄清楚为什么它无法解析 URL,因为使用相同的配置我能够发布甚至运行npm view包。我尝试过创建全新的包、指定版本、重置身份验证令牌,但由于某种原因我仍然无法下载包。

如果有帮助,我当前的 .npmrc 文件如下所示: