Branch
The Branch resource lets you manage AWS Amplify Branchs for your applications, allowing for features such as preview environments, performance modes, and more.
Minimal Example
Section titled “Minimal Example”Create a basic Amplify Branch with required properties and some common optional settings.
import AWS from "alchemy/aws/control";
const amplifyBranch = await AWS.Amplify.Branch("mainBranch", { AppId: "your-amplify-app-id", BranchName: "main", EnableAutoBuild: true, EnablePerformanceMode: false, Description: "Main branch for production deployment"});
Advanced Configuration
Section titled “Advanced Configuration”Configure an Amplify Branch with advanced settings, including environment variables and pull request previews.
const featureBranch = await AWS.Amplify.Branch("featureBranch", { AppId: "your-amplify-app-id", BranchName: "feature/new-feature", EnablePullRequestPreview: true, PullRequestEnvironmentName: "feature-env", EnvironmentVariables: [ { Name: "API_URL", Value: "https://api.example.com" }, { Name: "NODE_ENV", Value: "development" } ], BasicAuthConfig: { Username: "admin", Password: "securePassword123" }});
Custom Build Specifications
Section titled “Custom Build Specifications”Set a custom build specification for your Amplify Branch to control the build process.
const customBuildBranch = await AWS.Amplify.Branch("customBuildBranch", { AppId: "your-amplify-app-id", BranchName: "custom-build", BuildSpec: ` version: 0.1 frontend: phases: preBuild: commands: - npm install build: commands: - npm run build artifacts: baseDirectory: build files: - '**/*' cache: paths: - node_modules/**/* `});
Performance Optimizations
Section titled “Performance Optimizations”Create an Amplify Branch optimized for performance with skew protection enabled.
const optimizedBranch = await AWS.Amplify.Branch("optimizedBranch", { AppId: "your-amplify-app-id", BranchName: "optimized", EnableSkewProtection: true, EnableAutoBuild: true, EnablePerformanceMode: true, Tags: [ { Key: "Environment", Value: "Production" }, { Key: "Team", Value: "Development" } ]});