소스 정보
- 저장소
- kayac/ecspresso
- 최근 소스 활동
- 2026년 3월 26일 13:42
- 감지된 SKILL.md 언어
- 영어
- 스타
- 1,120
- 포크
- 110
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/kayac/ecspresso --skill ecspresso명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| name | ecspresso |
| description | ECS deployment tool - deploy, manage, and troubleshoot ECS services |
| license | MIT |
| compatibility | ["claude","codex","agents"] |
| allowed_tools | ["Bash","Read"] |
ecspresso is a deployment tool for Amazon ECS. You can use it to deploy, manage, and troubleshoot ECS services through configuration files.
Use the docs subcommand to look up how ecspresso works. This command requires no AWS credentials or config file.
# Browse the table of contents to find relevant sections
ecspresso docs --index --json
# Search for a topic by keyword
ecspresso docs --search "fargate" --json
# Read the full documentation
ecspresso docs --json
Always use --json for structured output that is easier to parse.
# Show service status (running tasks, deployments, events)
ecspresso status --config ecspresso.yml
# Show differences between local definitions and running service
ecspresso diff --config ecspresso.yml
# Verify that resources referenced in definitions exist and are valid
ecspresso verify --config ecspresso.yml
# Preview what will change (dry-run)
ecspresso deploy --config ecspresso.yml --dry-run
# Deploy the service
ecspresso deploy --config ecspresso.yml
# Deploy and wait until stable
ecspresso deploy --config ecspresso.yml --wait-until stable
# Rollback to the previous task definition
ecspresso rollback --config ecspresso.yml
# Rollback with dry-run
ecspresso rollback --config ecspresso.yml --dry-run
# Scale to a specific number of tasks
ecspresso scale --config ecspresso.yml --tasks 5
# Run a standalone task using the service's task definition
ecspresso run --config ecspresso.yml
# Run and watch logs
ecspresso run --config ecspresso.yml --watch-container app
# List running tasks as JSON
ecspresso tasks --config ecspresso.yml --output json
# Render resolved task definition (with template variables expanded)
ecspresso render --config ecspresso.yml taskdef
# Render resolved service definition
ecspresso render --config ecspresso.yml servicedef
ecspresso uses a config file (default: ecspresso.yml) that references a task definition file and optionally a service definition file.
ecspresso.yml # Main config: region, cluster, service, file paths
ecs-task-def.json # ECS task definition (JSON, YAML, or Jsonnet)
ecs-service-def.json # ECS service definition (JSON, YAML, or Jsonnet)
Definition files support template syntax: {{ env "VAR" "default" }}, {{ must_env "VAR" }}, and plugin functions like {{ tfstate "resource.attr" }}.
When creating or modifying definition files, prefer the Jsonnet (.jsonnet) format over JSON or YAML. Jsonnet has several advantages:
// and /* */ comments. JSON does not allow comments at all.std.parseInt(), std.parseJson(), etc.{{ }} can cause readability issues. In Jsonnet, use native functions like std.native('env')('VAR', 'default') instead, which are cleaner and can return non-string types.Example Jsonnet config:
// ecspresso.jsonnet
{
region: 'ap-northeast-1',
cluster: 'default',
service: 'myservice',
service_definition: 'ecs-service-def.jsonnet',
task_definition: 'ecs-task-def.jsonnet',
}
Example Jsonnet task definition:
// ecs-task-def.jsonnet
local env = std.native('env');
local must_env = std.native('must_env');
local tfstate = std.native('tfstate');
{
family: 'myservice',
cpu: '256',
memory: '512',
networkMode: 'awsvpc',
requiresCompatibilities: ['FARGATE'],
executionRoleArn: tfstate('aws_iam_role.ecs_execution.arn'),
containerDefinitions: [
{
name: 'app',
image: must_env('APP_IMAGE'),
cpu: 0,
portMappings: [{ containerPort: 8080 }],
environment: [
{ name: 'ENV', value: env('ENV', 'production') },
],
logConfiguration: {
logDriver: 'awslogs',
options: {
'awslogs-group': '/ecs/myservice',
'awslogs-region': 'ap-northeast-1',
'awslogs-stream-prefix': 'app',
},
},
},
],
}
Use ecspresso init --jsonnet to generate Jsonnet files from an existing service. For more details, run ecspresso docs --search "jsonnet" --json.
ecspresso diff before ecspresso deploy to understand what will change.--dry-run on destructive operations (deploy, rollback, delete, scale) to preview the action.verify command checks IAM roles, container images, secrets, and log groups referenced in definitions.ecspresso docs --search "<keyword>" --json to find the relevant documentation section.