Build Proton service template configurations with versioned schemas, environment compatibility, and pipeline settings.
Build Proton service template configurations with versioned schemas, environment compatibility, and pipeline settings.
Required Fields
NameCompatibleEnvironmentTemplatesServiceTemplateVersionOutput will appear here...Build an AWS Proton service template definition, a versioned schema (ServiceInput with typed properties like port, task_size, image) plus CompatibleEnvironmentTemplates that constrain which environment templates a service built from this template can actually deploy into. PipelineProvisioning as CUSTOMER_MANAGED means your own CI/CD pipeline (not Proton-managed infrastructure) handles the deploy pipeline, a deliberate architectural choice separate from the service template's infrastructure schema, and switching between CUSTOMER_MANAGED and the Proton-managed pipeline option isn't a simple flag flip once services are already built from the template.
CUSTOMER_MANAGED means your own existing CI/CD tooling (CodePipeline, GitHub Actions, whatever your org already runs) handles building and deploying the service, Proton just defines the infrastructure schema and provisions the environment/service infrastructure. The Proton-managed pipeline option instead has Proton itself provision and run a standard CI/CD pipeline for you. Once services are built from a template with one PipelineProvisioning setting, switching that setting isn't a simple template edit, it affects how already-deployed services' pipelines are managed.
No, only environments built from a compatible environment template listed in CompatibleEnvironmentTemplates, at a compatible major version. This is a deliberate constraint ensuring a service template's assumptions about the underlying infrastructure (like assuming an ECS cluster and VPC exist) actually hold for whatever environment it's deployed into, rather than failing at deploy time with a mismatch.
No, existing services stay on whatever major version they were instantiated with unless someone explicitly performs a major version update on them, which Proton treats as a deliberate, reviewed migration (since a major version bump is expected to contain breaking schema changes), not an automatic or silent upgrade.
The builder validates that Name, CompatibleEnvironmentTemplates, and ServiceTemplateVersion all resolve before accepting the JSON as a valid combined service template plus version definition, the fields Proton needs to register the template and its versioned schema; it can't verify the referenced environment template actually exists at the specified major version, that's checked only against the live Proton service.
Design the schema's Required fields conservatively, everything genuinely necessary for the infrastructure to make sense (like image and port) should be required, but over-requiring narrows self-service usability and pushes every team back to asking the platform team for template changes.
PipelineProvisioning is effectively a foundational architectural choice for the template, not a setting to revisit casually, changing it after services are already deployed from the template is a real migration, decide deliberately up front based on whether your org's CI/CD is centralized or team-owned.
A MajorVersion bump is the right tool for a genuinely breaking schema change, but overusing major version bumps for changes that could be minor/backward-compatible creates unnecessary migration burden on every team already using the template.
Was this tool helpful?
Disclaimer: This tool runs entirely in your browser. No data is sent to our servers. Always verify outputs before using them in production. AWS, Azure, and GCP are trademarks of their respective owners.