aws-actions/Amazon ECS "Deploy Express Service" Action for GitHub Actions
Creates or updates an Amazon ECS Express Mode service
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 30, 2026
- License
- Other
Pinned Snippet
uses: aws-actions/amazon-ecs-deploy-express-service@7c48a2de16441d528a3c89829831968dc1455010 # v1.2.2tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| service-name | The name of the ECS Express service. Used for both creating new services and updating existing ones. | yes | — |
| image | The container image URI to deploy (e.g., 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-app:latest) | yes | — |
| execution-role-arn | The ARN of the task execution role that grants the ECS agent permission to pull container images and publish logs | yes | — |
| infrastructure-role-arn | The ARN of the infrastructure role that grants ECS permission to create and manage AWS resources (ALB, target groups, etc.) | yes | — |
| cluster | The name of the ECS cluster. Will default to the 'default' cluster. | no | default |
| container-port | The port number on the container that receives traffic (containerPort in primaryContainer). If not specified, Express Mode will use port 80. | no | — |
| environment-variables | Environment variables to set in the container (environment in primaryContainer). Provide as JSON array: [{"name":"KEY","value":"VALUE"}] | no | — |
| secrets | Secrets to inject into the container (secrets in primaryContainer). Provide as JSON array: [{"name":"KEY","valueFrom":"arn:aws:secretsmanager:..."}] | no | — |
| command | Override the default container command (command in primaryContainer). Provide as JSON array: ["node","server.js"] | no | — |
| log-group | CloudWatch Logs log group name for container logs (logGroup in awsLogsConfiguration). If not specified, Express Mode creates a log group automatically. | no | — |
| log-stream-prefix | CloudWatch Logs stream prefix for container logs (logStreamPrefix in awsLogsConfiguration). If not specified, Express Mode uses a default prefix. | no | — |
| repository-credentials | ARN of the secret containing credentials for private container registry (credentialsParameter in repositoryCredentials). Required for private registries outside ECR. | no | — |
| tags | Resource tags to apply to the ECS Express Gateway service and associated AWS resources (ALB, target groups, auto-scaling, etc.). Provide as JSON array: [{"key":"Environment","value":"Production"}] or multiline format: Environment=Production | no | — |
| mutate-tags-on-update | Enable tag management for service updates. When set to "true", performs complete tag state management by adding new tags and removing existing tags that are not in the provided tags input. When not set or "false", no tag operations are performed during service updates (existing tags remain unchanged). Note: Tags are always applied during service creation regardless of this setting. Requires ecs:TagResource and ecs:UntagResource permissions when enabled. | no | false |
| cpu | The number of CPU units to allocate (256, 512, 1024, 2048, 4096, 8192, 16384). If not specified, Express Mode defaults to 256 (.25 vCPU). | no | — |
| memory | The amount of memory in MiB to allocate (512, 1024, 2048, 4096, 8192, 16384, 30720, 61440, 122880). If not specified, Express Mode defaults to 512 MiB. | no | — |
| task-role-arn | The ARN of the IAM role that the container can assume to make AWS API calls (taskRoleArn) | no | — |
| subnets | Comma-separated list of subnet IDs for the service (subnets in networkConfiguration). If not specified, Express Mode uses the default VPC. | no | — |
| security-groups | Comma-separated list of security group IDs for the service (securityGroups in networkConfiguration). | no | — |
| health-check-path | The path for ALB health checks (healthCheckPath). If not specified, Express Mode defaults to /ping. | no | — |
| min-task-count | Minimum number of tasks for auto-scaling (minTaskCount in scalingTarget). Must be less than or equal to max-task-count. | no | — |
| max-task-count | Maximum number of tasks for auto-scaling (maxTaskCount in scalingTarget). Must be greater than or equal to min-task-count. | no | — |
| auto-scaling-metric | The metric to use for auto-scaling (autoScalingMetric in scalingTarget): AVERAGE_CPU, AVERAGE_MEMORY, or REQUEST_COUNT_PER_TARGET | no | — |
| auto-scaling-target-value | The target value for the auto-scaling metric (autoScalingTargetValue in scalingTarget). For example, 60 for 60% CPU utilization. | no | — |
Outputs
| name | description |
|---|---|
| service-arn | The ARN of the deployed Express service |
| endpoint | The endpoint URL of the service (from the Application Load Balancer) |