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

Azure DevOps中AWSShellScript@1/ECRPushImage@1依赖Node10问题求助

解决Azure DevOps流水线中AWS任务依赖Node.js 10的警告问题

你的流水线出现的警告是因为AWSShellScript@1和ECRPushImage@1这两个任务依赖的Node.js 10已经停止维护,且升级到v2版本失败,这里提供几个可行的解决方案:

方案1:用原生Bash任务替代旧AWS任务

直接使用Azure DevOps官方的Bash@3任务配合AWS CLI实现相同功能,完全避开旧任务的Node依赖问题,配置如下:

替换AWSShellScript@1(Docker构建+ECR登录)

- task: Bash@3
  displayName: Docker build ${{ appService.name }}
  inputs:
    targetType: 'inline'
    script: |
      # 登录ECR
      aws ecr get-login-password --region ${{ parameters.ecrRegion }} | docker login --username AWS --password-stdin $(ecrURL)
      # 生成Dockerfile
      cat > Dockerfile << EOF
      FROM ${{ parameters.openJDKImage }}
      RUN mkdir /artifact && apk add openssl
      COPY ${{ appService.name }}-$(JAR_SNAPSHOT_VERSION).jar /artifact/service.jar
      CMD ["/bin/sh", "-c", "java -jar /artifact/service.jar"]
      EOF
      # 构建镜像
      docker build . -t $(ecrURL)/${{ appService.ecrRepo }}:$(VERSION)-$(COMMIT)
    workingDirectory: '$(System.DefaultWorkingDirectory)'

替换ECRPushImage@1(镜像推送到ECR)

- task: Bash@3
  displayName: Push ${{ appService.name }} image to DEV ECR
  inputs:
    targetType: 'inline'
    script: |
      # 推送镜像到ECR
      docker push $(ecrURL)/${{ appService.ecrRepo }}:$(VERSION)-$(COMMIT)
      # 设置输出变量(和原任务的outputVariable功能一致)
      echo "##vso[task.setvariable variable=imageUri]$(ecrURL)/${{ appService.ecrRepo }}:$(VERSION)-$(COMMIT)"

方案2:检查并更新AWS扩展

如果坚持要用官方AWS任务,先确认组织内的AWS扩展是否为最新版:

  • 进入Azure DevOps组织的「市场」→「管理扩展」
  • 找到「AWS Toolkit for Azure DevOps」,查看是否有更新,更新后再尝试使用AWSShellScript@2和ECRPushImage@2
  • 若更新后仍无v2版本,说明官方暂未发布,方案1是更稳妥的选择

方案3:自定义代理(不推荐)

如果必须保留旧任务,可以搭建自定义代理,在代理上安装受支持的Node.js版本,通过任务环境变量指定使用新版本Node。但这种方法维护成本高,且旧任务可能存在安全隐患,不建议采用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:10:10