Skip to main content
Version: v4 (current)

AWS

Architecture

Orchestrator creates and manages these AWS resources automatically:

Requirements

  • An AWS account with permission to create resources (ECS, CloudFormation, S3, Kinesis, CloudWatch).
  • An IAM user or role with an access key and secret key.

AWS Credentials

Set the following as env variables in your workflow:

VariableDescription
AWS_ACCESS_KEY_IDIAM access key ID.
AWS_SECRET_ACCESS_KEYIAM secret access key.
AWS_DEFAULT_REGIONAWS region matching your base stack (e.g. eu-west-2).

If you're using GitHub Actions, configure credentials with:

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-2

CPU and Memory

AWS Fargate only accepts specific CPU/memory combinations. Values use the format 1024 = 1 vCPU or 1 GB. Do not include the vCPU or GB suffix.

See the full list: AWS Fargate Task Definitions

Common combinations:

CPU (containerCpu)Memory (containerMemory)
256 (0.25 vCPU)512, 1024, 2048
512 (0.5 vCPU)10244096
1024 (1 vCPU)20488192
2048 (2 vCPU)409616384
4096 (4 vCPU)819230720

Example Workflow

- uses: game-ci/unity-builder@v4
id: aws-fargate-unity-build
with:
providerStrategy: aws
versioning: None
projectPath: path/to/your/project
unityVersion: 2022.3.0f1
targetPlatform: ${{ matrix.targetPlatform }}
gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
containerCpu: 1024
containerMemory: 4096
# Export builds to S3:
containerHookFiles: aws-s3-upload-build

See Container Hooks for more on containerHookFiles.

A full workflow example is available in the builder source: orchestrator-pipeline.yml.

Troubleshooting

Container Override Size (8192 bytes)

AWS ECS/Fargate limits the containerOverrides payload to 8192 bytes. This payload includes all build environment variables, secrets, and the build command. Complex workflows with many custom parameters or large secret values can exceed this limit, producing the error:

Container Overrides length must be at most 8192

To reduce payload size, use the orchestrator's built-in secret pulling to fetch secrets at runtime instead of passing them inline:

env:
pullInputList: UNITY_LICENSE,UNITY_SERIAL,UNITY_EMAIL,UNITY_PASSWORD
secretSource: aws-secrets-manager

See Troubleshooting: Container Overrides for more details.

AWS Parameters

For the full list of AWS-specific parameters (awsStackName, endpoint overrides, etc.), see the API Reference - AWS section.