mcpField
M
managing-astro-deployments

managing-astro-deployments

github.com/astronomer云与 DevOps457573 次安装3 周前更新
代码仓库

关于 managing-astro-deployments

面向生产环境 Astronomer 部署的 Astro CLI 管理技能,涵盖工作区、部署配置和代码发布。适用于部署运维与迭代发布,包含 DAG-only 部署流程。

主要功能

  1. 01列出并检查部署状态
  2. 02创建、更新和删除部署
  3. 03发布 DAG 与 Docker 镜像
  4. 04管理部署 API 令牌
  5. 05切换工作区并配置 CLI

适用场景

  1. 01检查生产部署健康状态
  2. 02仅发布 DAG 文件以快速迭代
  3. 03将代码从预发布环境推广到生产
  4. 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