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

将AWS CodeArtifact相关Linux脚本转换为PowerShell脚本求助

将AWS CodeArtifact的Linux脚本转换为PowerShell脚本

转换后的PowerShell脚本

# 获取CodeArtifact仓库Endpoint,解析JSON并提取实际URL
$endpointResponse = aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm | ConvertFrom-Json
$endpoint = $endpointResponse.repositoryEndpoint

# 设置指定作用域的npm registry
npm config set registry $endpoint --scope=@my-package

# 获取CodeArtifact授权令牌,解析JSON并提取令牌值
$tokenResponse = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --repository my_repo | ConvertFrom-Json
$token = $tokenResponse.authorizationToken

# 从Endpoint中提取registry域名(替代硬编码,提升灵活性)
$registryDomain = $endpoint -replace '^https://', '' -replace '/npm/.*$', ''

# 设置npm认证令牌
npm config set "//$registryDomain/:_authToken" $token

# 启用始终认证
npm config set "//$registryDomain/:always-auth" true

关键细节说明

  • 变量赋值与JSON解析:
    PowerShell用$变量名 = 值语法赋值,aws CLI返回JSON格式结果,必须通过ConvertFrom-Json解析才能提取repositoryEndpoint、authorizationToken这类具体字段。原Linux脚本实际也需要jq工具提取值,这里按正确逻辑补全了处理步骤。
  • 带作用域的registry配置:
    在npm config set命令中直接引用$endpoint变量即可,PowerShell会自动替换变量值,完成指定作用域的registry绑定。
  • 避免硬编码URL:
    从已获取的$endpoint中提取域名部分,无需手动写死完整URL,后续域名、仓库名变更时,脚本无需重复修改。

内容的提问来源于stack exchange,提问作者Nemus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:40:41