关于 managing-astro-deployments
面向生产环境 Astronomer 部署的 Astro CLI 管理技能,涵盖工作区、部署配置和代码发布。适用于部署运维与迭代发布,包含 DAG-only 部署流程。
主要功能
- 01列出并检查部署状态
- 02创建、更新和删除部署
- 03发布 DAG 与 Docker 镜像
- 04管理部署 API 令牌
- 05切换工作区并配置 CLI
适用场景
- 01检查生产部署健康状态
- 02仅发布 DAG 文件以快速迭代
- 03将代码从预发布环境推广到生产
- 04为程序化访问创建 API 令牌
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ astronomer/ agents --skill managing-astro-deployments安装后在 Claude Code 中输入/managing-astro-deployments确认已加载。
详细介绍
Astro 部署管理
此技能可帮助你使用 Astro CLI 管理生产环境中的 Astronomer 部署。
对于本地开发,请参阅 managing-astro-local-env 技能。 对于生产环境故障排查,请参阅 troubleshooting-astro-deployments 技能。
身份验证
所有部署操作都需要身份验证:
# Login to Astronomer (opens browser for OAuth)
astro login
身份验证令牌会在本地保存,供后续命令使用。在执行任何部署操作前,请先运行此命令。
工作空间管理
部署按工作空间组织:
# List all accessible workspaces
astro workspace list
# Switch to a specific workspace
astro workspace switch <WORKSPACE_ID>
工作空间上下文会在会话之间保留。大多数部署命令都在当前工作空间上下文中运行。
列出和检查部署
# List deployments in current workspace
astro deployment list
# List deployments across all workspaces
astro deployment list --all
# Inspect specific deployment (detailed info)
astro deployment inspect <DEPLOYMENT_ID>
# Inspect by name (alternative to ID)
astro deployment inspect --deployment-name data-service-stg
inspect 显示的内容
- 部署状态(HEALTHY、UNHEALTHY)
- Runtime 版本和 Airflow 版本
- 执行器类型(CELERY、KUBERNETES、LOCAL)
- 调度器配置(规格、数量)
- Worker 队列设置(Worker 最小/最大数量、并发数、Worker 类型)
- 资源配额(CPU、内存)
- 环境变量
- 上次部署时间戳和当前标签
- Webserver 和 API URL
- 高可用状态
创建部署
# Create with default settings
astro deployment create
# Create with specific executor
astro deployment create --label production --executor celery
astro deployment create --label staging --executor kubernetes
# Executor options:
# - celery: Best for most production workloads
# - kubernetes: Best for dynamic scaling, isolated tasks
# - local: Best for development only
更新部署
# Enable DAG-only deploys (faster iteration)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled
# Update other settings (use --help for full options)
astro deployment update <DEPLOYMENT_ID> --help
删除部署
# Delete a deployment (requires confirmation)
astro deployment delete <DEPLOYMENT_ID>
破坏性操作:此操作无法撤销。所有 DAG、任务历史记录和元数据都将丢失。
将代码部署到生产环境
完整部署
同时部署 DAG 和 Docker 镜像(依赖项变更时必须使用):
astro deploy <DEPLOYMENT_ID>
适用于:
- 依赖项发生变更(
requirements.txt、packages.txt、Dockerfile) - 新项目的首次部署
- 重大的基础设施变更
仅部署 DAG(迭代时推荐)
仅部署 DAG 文件,跳过 Docker 镜像重建:
astro deploy <DEPLOYMENT_ID> --dags
适用于:
- 仅 DAG 文件发生变更(
dags/目录中的 Python 文件) - 开发期间快速迭代
- 比完整部署快得多(几秒而非几分钟)
要求:部署上已设置 --dag-deploy-enabled 标志(参见“更新部署”)
仅部署镜像
仅部署 Docker 镜像,跳过 DAG 同步:
astro deploy <DEPLOYMENT_ID> --image-only
适用于:
- 仅依赖项发生变更
- Dockerfile 或 requirements 已更新
- DAG 没有变更
强制部署
绕过安全检查并进行部署:
astro deploy <DEPLOYMENT_ID> --force
注意:此操作会跳过可能阻止部署损坏版本的验证。
部署 API 令牌
管理用于以编程方式访问部署的 API 令牌:
# List tokens for a deployment
astro deployment token list --deployment-id <DEPLOYMENT_ID>
# Create a new token
astro deployment token create \
--deployment-id <DEPLOYMENT_ID> \
--name "CI/CD Pipeline" \
--role DEPLOYMENT_ADMIN
# Create token with expiration
astro deployment token create \
--deployment-id <DEPLOYMENT_ID> \
--name "Temporary Access" \
--role DEPLOYMENT_ADMIN \
--expiry 30 # Days until expiration (0 = never expires)
角色:
DEPLOYMENT_ADMIN:对部署拥有完全访问权限
注意:令牌值仅在创建时显示。请妥善保管。
常见工作流
首次部署到生产环境
# 1. Login
astro login
# 2. Switch to production workspace
astro workspace list
astro workspace switch <PROD_WORKSPACE_ID>
# 3. Create deployment
astro deployment create --label production --executor celery
# 4. Note the deployment ID, then deploy
astro deploy <DEPLOYMENT_ID>
迭代开发 DAG
# 1. Enable fast deploys (one-time setup)
astro deployment update <DEPLOYMENT_ID> --dag-deploy-enabled
# 2. Make DAG changes locally
# 3. Deploy quickly
astro deploy <DEPLOYMENT_ID> --dags
将代码从暂存环境提升到生产环境
# 1. Deploy to staging first
astro workspace switch <STAGING_WORKSPACE_ID>
astro deploy <STAGING_DEPLOYMENT_ID>
# 2. Test in staging
# 3. Deploy same code to production
astro workspace switch <PROD_WORKSPACE_ID>
astro deploy <PROD_DEPLOYMENT_ID>
配置管理
# View CLI configuration
astro config get
# Set configuration value
astro config set <KEY> <VALUE>
# Check CLI version
astro version
# Upgrade CLI to latest version
astro upgrade
提示
- 使用
--dags标志快速迭代(几秒而非几分钟) - 始终先在暂存工作空间中测试,再部署到生产环境
- 部署前使用
deployment inspect验证部署运行状况 - 部署 ID 是永久的,名称可以更改
- 大多数命令都支持使用部署 ID;
inspect也接受--deployment-name - 每个部署只需设置一次
--dag-deploy-enabled,即可实现快速部署 - 使用
astro workspace list查看当前工作空间上下文(当前工作空间会显示星号)
相关技能
- troubleshooting-astro-deployments:调查部署问题、查看日志、管理环境变量
- managing-astro-local-env:管理本地 Airflow 开发环境
- setting-up-astro-project:初始化并配置 Astro 项目
评论
支持 Markdown