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)1024 – 4096
1024 (1 vCPU)2048 – 8192
2048 (2 vCPU)4096 – 16384
4096 (4 vCPU)8192 – 30720

Example Workflow​

- uses: game-ci/orchestrator@v1.0.0
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.