RepositoryCreationTemplate
The RepositoryCreationTemplate resource allows you to define a template for creating Amazon Elastic Container Registry (ECR) repositories. For more detailed information, refer to the AWS ECR RepositoryCreationTemplates documentation.
Minimal Example
Section titled “Minimal Example”Create a basic repository creation template with essential properties.
import AWS from "alchemy/aws/control";
const basicTemplate = await AWS.ECR.RepositoryCreationTemplate("basicTemplate", { AppliedFor: ["teamA", "teamB"], Prefix: "my-app", Description: "Template for my application repositories", ImageTagMutability: "MUTABLE"});
Advanced Configuration
Section titled “Advanced Configuration”Configure a repository creation template with enhanced security settings and lifecycle policies.
const advancedTemplate = await AWS.ECR.RepositoryCreationTemplate("advancedTemplate", { AppliedFor: ["teamC"], Prefix: "secure-app", Description: "Template for secure application repositories", ImageTagMutability: "IMMUTABLE", LifecyclePolicy: JSON.stringify({ rules: [ { rulePriority: 1, selectionCriteria: { tagStatus: "ANY" }, action: { type: "EXPIRY", expiry: { days: 30 } } } ] }), ResourceTags: [ { Key: "Environment", Value: "Production" }, { Key: "Owner", Value: "TeamC" } ]});
Custom Role and Encryption Configuration
Section titled “Custom Role and Encryption Configuration”Define a repository creation template that specifies a custom IAM role and encryption configuration.
const secureTemplate = await AWS.ECR.RepositoryCreationTemplate("secureTemplate", { AppliedFor: ["teamD"], Prefix: "encrypted-app", Description: "Template for encrypted application repositories", CustomRoleArn: "arn:aws:iam::123456789012:role/MyECRRole", EncryptionConfiguration: { EncryptionType: "AES256" }});
Policy and Additional Tags
Section titled “Policy and Additional Tags”Create a template that includes a repository policy and additional resource tags.
const policyTemplate = await AWS.ECR.RepositoryCreationTemplate("policyTemplate", { AppliedFor: ["teamE"], Prefix: "policy-app", Description: "Template for repositories with policies", RepositoryPolicy: JSON.stringify({ Version: "2012-10-17", Statement: [ { Sid: "AllowPull", Effect: "Allow", Principal: { AWS: "arn:aws:iam::123456789012:role/MyPullRole" }, Action: "ecr:BatchGetImage" } ] }), ResourceTags: [ { Key: "Project", Value: "PolicyProject" }, { Key: "Department", Value: "Engineering" } ]});