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

使用Pulumi部署AWS栈报错:未找到名为'dev'的栈

问题描述

尝试通过GitHub Actions结合Pulumi在AWS账户中部署栈,使用的deploy.yml配置如下:

name: Pushes Glue Scripts to S3

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy jobs
        uses: pulumi/actions@v5
        id: pulumi
        env:
          PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
        with:
          command: up
          cloud-url: s3://my-bucket/pulumi/
          stack-name: dev

仓库中存在Pulumi.dev.yaml栈文件(仅包含加密盐代码),且已通过pulumi login s3://my-bucket/pulumi/将Pulumi后端配置为S3存储桶,但运行部署时出现以下错误:

StackNotFoundError: code: -2
 stdout: 
 stderr: Command failed with exit code 255: pulumi stack select --stack dev --non-interactive
error: no stack named 'dev' found
 err?: Error: Command failed with exit code 255: pulumi stack select --stack dev --non-interactive
error: no stack named 'dev' found
解决方法
  1. 添加代码检出步骤
    GitHub Actions容器默认不会拉取仓库代码,必须显式添加actions/checkout步骤,确保Pulumi.dev.yaml和Pulumi基础设施代码能被工具访问:

    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout repository
            uses: actions/checkout@v4
          - name: Deploy jobs
            uses: pulumi/actions@v5
            # 其余配置保持不变
    
  2. 同步dev栈到S3后端
    本地执行以下操作,确保S3后端中存在dev栈:

    • 切换到S3后端:pulumi login s3://my-bucket/pulumi/
    • 查看现有栈:pulumi stack ls,若未找到dev栈,执行pulumi stack init dev创建
    • 执行pulumi up一次,将本地栈状态推送到S3后端
  3. 配置AWS访问凭证
    Pulumi需要AWS权限才能访问S3后端,在GitHub仓库Secrets中添加AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY,并在Workflow中注入:

    env:
      PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    
GitHub Actions + Pulumi 必做检查步骤
  • 代码检出验证:必须添加actions/checkout步骤,确保Pulumi能读取项目中的栈配置和基础设施代码
  • 后端权限配置:确认Workflow拥有访问Pulumi后端(如S3)的对应云服务商权限,凭证配置正确
  • 栈存在性确认:提前在目标后端创建指定栈,或在Workflow中添加pulumi stack init --non-interactive步骤(仅当栈不存在时自动创建)
  • 环境变量检查:确保PULUMI_CONFIG_PASSPHRASE(若启用加密)、云服务商凭证等必要环境变量已正确注入
  • 版本兼容性验证:确认pulumi/actions版本与本地使用的Pulumi CLI版本兼容,避免版本差异导致的栈识别问题
  • 栈名称准确性:检查Workflow中stack-name与后端中存在的栈名称完全一致(大小写敏感)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:37:11