### Install Sceptre with pip Source: https://docs.sceptre-project.org/latest/_sources/docs/install Installs the Sceptre tool using pip. Assumes Python is installed and recommends using a virtual environment. ```bash pip install sceptre ``` -------------------------------- ### Sceptre Stack Configuration for VPC Source: https://docs.sceptre-project.org/latest/docs/get_started Configuration for a Sceptre Stack, linking to the CloudFormation template and providing parameters. ```yaml template: path:vpc.yaml type:file parameters: CidrBlock:10.0.0.0/16 ``` -------------------------------- ### Sceptre StackGroup Configuration Source: https://docs.sceptre-project.org/latest/docs/get_started Configuration for a Sceptre StackGroup, specifying the project code and the AWS region for deployment. ```yaml project_code:sceptre-example region:eu-west-1 ``` -------------------------------- ### Sceptre CLI Commands Source: https://docs.sceptre-project.org/latest/docs/get_started Common Sceptre commands for managing CloudFormation stacks, including creating, updating, and deleting stacks, as well as meta commands for inspecting stack information. ```bash sceptre create dev/vpc sceptre describe dev/vpc sceptre update dev/vpc sceptre delete dev/vpc ``` -------------------------------- ### Sceptre Configuration Examples Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_config Provides examples of Sceptre configuration files, including template paths, parameters, dependencies, and hooks. ```yaml template: path: templates/example.py type: file parameters: param_1: value_1 param_2: value_2 ``` ```yaml template: path: templates/example.yaml type: file dependencies: - dev/vpc.yaml hooks: before_create: - !cmd "echo creating..." after_create: - !cmd "echo created" ``` -------------------------------- ### Sceptre Hook File Structure Example Source: https://docs.sceptre-project.org/latest/_sources/docs/hooks Illustrates the basic directory structure for a custom Sceptre hook, including the Python module and the setup script. ```bash custom_hook ├── custom_hook.py └── setup.py ``` -------------------------------- ### Validate Sceptre Installation Source: https://docs.sceptre-project.org/latest/_sources/docs/install Validates the Sceptre installation by printing its version number. ```bash sceptre --version ``` -------------------------------- ### Update Sceptre with pip Source: https://docs.sceptre-project.org/latest/_sources/docs/install Updates the Sceptre tool to the latest version using pip. ```bash pip install sceptre -U ``` -------------------------------- ### Install and Update Sceptre using pip Source: https://docs.sceptre-project.org/latest/docs/install Instructions for installing and updating the Sceptre tool using pip, including how to validate the installation by checking the version. ```bash pip install sceptre sceptre --version pip install sceptre -U ``` -------------------------------- ### Sceptre Plan Launch Example Source: https://docs.sceptre-project.org/latest/_sources/docs/terminology Demonstrates how to instantiate a SceptrePlan with a SceptreContext and execute a launch command against the defined stacks. ```python plan = SceptrePlan(context) responses = plan.launch() ``` -------------------------------- ### Sceptre File Template Example Source: https://docs.sceptre-project.org/latest/docs/stack_config An example of a Sceptre configuration using a file template with parameters. ```YAML template: path:templates/example.py type:file parameters: param_1:value_1 param_2:value_2 ``` -------------------------------- ### CloudFormation VPC Template Source: https://docs.sceptre-project.org/latest/docs/get_started Defines a CloudFormation template for creating an AWS VPC. It includes a parameter for the CIDR block and outputs the VPC ID. ```yaml Parameters: CidrBlock: Type:String Resources: VPC: Type:'AWS::EC2::VPC' Properties: CidrBlock: Ref:CidrBlock Outputs: VpcId: Value: Ref:VPC ``` -------------------------------- ### Run Sceptre Docker Container Source: https://docs.sceptre-project.org/latest/_sources/docs/install Runs the Sceptre Docker container, mounting the current directory as '/project' and AWS configuration to '/root/.aws/'. ```docker docker run -v $(pwd):/project -v /Users/me/.aws/:/root/.aws/:ro cloudreach/sceptre:latest --help ``` -------------------------------- ### Enter Sceptre Docker Container Shell Source: https://docs.sceptre-project.org/latest/_sources/docs/install Enters the shell of the Sceptre Docker container, allowing direct execution of sceptre commands for development purposes. ```docker docker run -ti --entrypoint='' cloudreach:test sh ``` -------------------------------- ### Example Command Path Usage Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_group_config Illustrates a Sceptre command and how its path components can be accessed in the configuration. ```text sceptre launch eu-west-1/dev/vpc.yaml ``` -------------------------------- ### Pull Sceptre Docker Image Source: https://docs.sceptre-project.org/latest/_sources/docs/install Pulls the Sceptre Docker image. Specify the version number or omit it to pull the 'latest' tag. ```docker docker pull sceptreorg/sceptre:[SCEPTRE_VERSION_NUMBER] ``` -------------------------------- ### Comprehensive Sceptre Configuration Example Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_group_config A complete example showcasing the usage of user variables, environment variables, command path, and default values within a Sceptre configuration file. ```yaml profile: {{ var.profile }} project_code: {{ var.project_code | default("prj") }} region: {{ command_path.2 }} template_bucket_name: {{ environment_variable.TEMPLATE_BUCKET_NAME }} ``` -------------------------------- ### Create New Sceptre Project Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Command to generate a new Sceptre project with a predefined directory structure. It prompts for a region and project code. ```text $ sceptre new project my-sceptre-project Please enter a region []: Please enter a project_code [my-sceptre-project]: ``` -------------------------------- ### Example Variable File Content Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_group_config Provides an example of the content expected in a Sceptre variable YAML file. ```yaml profile: ``` -------------------------------- ### Sceptre Project Layout Example Source: https://docs.sceptre-project.org/latest/docs/architecture Example of a Sceptre project layout for application development within an externally defined VPC. It shows the organization of configuration files for different environments and services. ```yaml -config - prod - application - asg.yaml - security-group.yaml - database - rds.yaml - security-group.yaml ``` -------------------------------- ### Final Project Directory Structure Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started The complete directory structure of the Sceptre project after adding the VPC stack configuration and template. ```text tree . ├── config │   ├── config.yaml │   └── dev │   ├── config.yaml │   └── vpc.yaml └── templates └── vpc.yaml ``` -------------------------------- ### Sceptre Template Configuration (S3 Example) Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_config Example of configuring a template handler in Sceptre, specifically for loading a template from an S3 bucket. This demonstrates the 'template' key with 'type' and 'path' sub-keys. ```yaml template: type: s3 path: infra-templates/s3/v1/bucket.yaml parameters: : "value" sceptre_user_data: ``` -------------------------------- ### Sceptre Directory Structure Example Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_group_config Illustrates a cascading configuration file structure for Sceptre projects, showing how general and specific configurations are organized. ```text .\n└── config ├── account-1 │   ├── config.yaml │   └── dev │   └── config.yaml └── config.yaml ``` -------------------------------- ### Sceptre Stack Configuration for VPC Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Configuration file for a specific Sceptre stack, linking to the CloudFormation template and providing parameters. ```yaml template: path: vpc.yaml type: file parameters: CidrBlock: 10.0.0.0/16 ``` -------------------------------- ### Create VPC Stack Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Command to create the VPC stack defined in the Sceptre project. This command should be executed from the project's root directory. ```text $ sceptre create dev/vpc.yaml ``` -------------------------------- ### SceptrePlan Launch Example Source: https://docs.sceptre-project.org/latest/docs/terminology Demonstrates how to create a SceptrePlan with a given context and execute the 'launch' command against the project's stacks. This is a fundamental operation for deploying infrastructure using Sceptre. ```Python plan = SceptrePlan(context) responses = plan.launch() ``` -------------------------------- ### Sceptre Project Initialization Commands Source: https://docs.sceptre-project.org/latest/docs/cli Commands for initializing new Sceptre projects and stack groups. Includes creating project folders and configuration files. ```APIDOC new Commands for initialising Sceptre projects. group Creates StackGroup folder in the project and a config.yaml with any required properties. param stack_group: Name of the StackGroup directory to create. type stack_group: str Arguments: STACK_GROUP: Required argument project Creates PROJECT_NAME project folder and a config.yaml with any required properties. param project_name: The name of the Sceptre Project to create. type project_name: str Arguments: PROJECT_NAME: Required argument ``` -------------------------------- ### Custom Resolver Packaging Setup Source: https://docs.sceptre-project.org/latest/_sources/docs/resolvers Illustrates the setup.py file configuration for packaging a custom Sceptre resolver. It specifies the entry points for Sceptre to discover and use the custom resolver. ```python from setuptools import setup setup( name='', py_modules=[''], entry_points={ 'sceptre.resolvers': [ ' = :CustomResolver', ], } ) ``` -------------------------------- ### Custom Hook Packaging (setup.py) Source: https://docs.sceptre-project.org/latest/_sources/docs/hooks Example setup.py file for packaging a custom Sceptre hook as a Python package, defining the entry point for Sceptre to discover the hook. ```python from setuptools import setup setup( name='custom_hook_package', py_modules=[''], entry_points={ 'sceptre.hooks': [ ' = :CustomHook', ], } ) ``` -------------------------------- ### Custom Resolver Packaging with Setuptools Source: https://docs.sceptre-project.org/latest/docs/resolvers Shows how to package a custom Sceptre resolver using `setup.py` and `setuptools`. It details the `entry_points` configuration required for Sceptre to discover and use the custom resolver. ```python fromsetuptoolsimport setup setup( name='', py_modules=[''], entry_points={ 'sceptre.resolvers': [ ' = :CustomResolver', ], } ) ``` -------------------------------- ### Sceptre Project Directory Structure Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Illustrates the default directory layout created by 'sceptre new'. Includes config and templates directories for project configuration and CloudFormation templates. ```text tree . my-sceptre-project ├── config │ └── config.yaml └── templates ``` -------------------------------- ### Setup and Usage of Custom Template Handler Source: https://docs.sceptre-project.org/latest/docs/template_handlers Provides instructions for packaging a custom template handler using setuptools and integrating it into a Sceptre stack configuration file. It shows how to define the entry point and specify the handler type and module. ```python from setuptools import setup setup( name='', py_modules=[''], entry_points={ 'sceptre.template_handlers': [ ' = :CustomTemplateHandler', ], } ) ``` ```yaml template: type: : ``` -------------------------------- ### Sceptre Cmd Hook - PowerShell Example Source: https://docs.sceptre-project.org/latest/_sources/docs/hooks Example of using the `cmd` hook to execute a PowerShell command. ```yaml hooks: before_update: - !cmd run: Write-Output "Hello, Posh!" shell: pwsh ``` -------------------------------- ### Create Directories and Files for VPC Stack Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Shell commands to create necessary directories and configuration files for a VPC stack, including template and stack configuration files. ```text mkdir config/dev touch config/dev/config.yaml config/dev/vpc.yaml templates/vpc.yaml ``` -------------------------------- ### Basic Sceptre Command Example Source: https://docs.sceptre-project.org/latest/_sources/docs/hooks A simple example of using the `!cmd` hook to execute a shell command within a Sceptre configuration. ```yaml !cmd "echo creating..." !cmd "echo created" !cmd "echo done" ``` -------------------------------- ### Circular Dependency Avoidance Example Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_group_config Provides an example project structure to avoid circular dependencies when referencing Sceptre-managed stacks like template buckets or IAM roles. ```yaml config/ - config.yaml # This is the StackGroup Config for your whole project. - sceptre-dependencies.yaml # This stack defines your template bucket, iam role, topics, etc... - project/ # You can put all your other stacks in this StackGroup - config.yaml # In this StackGroup Config you can use !stack_output to # reference outputs from sceptre-dependencies.yaml. - vpc.yaml # Put all your other project stacks inside project/ - other-stack.yaml ``` -------------------------------- ### Sceptre Jinja2 Environment Configuration Example Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_group_config Provides an example of how to configure the Jinja2 environment for Sceptre stack templating, including extensions, whitespace control, and newline sequences. ```yaml j2_environment: extensions: - jinja2.ext.i18n - jinja2.ext.do lstrip_blocks: True trim_blocks: True newline_sequence: \n ``` -------------------------------- ### Sceptre Configuration with Hooks and Parameters Source: https://docs.sceptre-project.org/latest/docs/stack_config A comprehensive Sceptre configuration example demonstrating dependencies, before_create and after_create hooks, various parameter types (stack outputs, environment variables, file contents), and stack tags. ```YAML template: path:templates/example.yaml type:file dependencies: -dev/vpc.yaml hooks: before_create: -!cmd"echocreating..." after_create: -!cmd"echocreated" -!cmd"echodone" after_update: -!cmd"mkdirexample" -!cmd"touchexample.txt" parameters: param_1:!stack_outputstack_name.yaml::output_name param_2:!stack_outputexternalfull_stack_name::output_name param_3:!environment_variableVALUE_3 param_4: {{var.value4}} param_5: {{command_path.3}} param_6: {{environment_variable.VALUE_6}} sceptre_user_data: thing_1:value_1 thing_2:!file_contentspath/to/file.txt stack_tags: tag_1:value_1 tag_2:value_2 ``` -------------------------------- ### Sceptre Launch Command Line Options Source: https://docs.sceptre-project.org/latest/genindex Lists the command-line options for 'sceptre-launch', including rollback control, pruning, confirmation, and specifying the path. ```bash --disable-rollback --enable-rollback --prune --yes -p -y PATH ``` -------------------------------- ### Sceptre Project Layout Example for DevOps Source: https://docs.sceptre-project.org/latest/docs/architecture Example of a Sceptre project layout for a DevOps team managing all infrastructure for their service. It includes network, frontend, application, and database configurations. ```yaml -config - prod - network - vpc.yaml - subnet.yaml - frontend - api-gateway.yaml - application - lambda-get-item.yaml - lambda-put-item.yaml - database - dynamodb.yaml ``` -------------------------------- ### Sceptre Placeholder Examples Source: https://docs.sceptre-project.org/latest/docs/resolvers Provides specific examples of how placeholders appear for `!stack_output` in stack parameters and `sceptre_user_data` when using Jinja templates, and how resolvable properties like `sceptre_role` are handled. ```English If you have a stack parameter referencing `!stack_output other_stack.yaml::OutputName`, and you run the `diff` command before other_stack.yaml has been deployed, the diff output will show the value of that parameter to be `"{ !StackOutput(other_stack.yaml::OutputName) }"`. If you have a `sceptre_user_data` value used in a Jinja template referencing `!stack_output other_stack.yaml::OutputName` and you run the `dump template` command, the generated template will replace that value with `"StackOutputotherstackyamlOutputName"`. This isn’t as “pretty” as the sort of placeholder used for stack parameters, but the use of sceptre_user_data is broader, so it placeholder values can only be alphanumeric to reduce chances of it breaking the template. Resolvable properties that are _always_ used when performing template operations (like `sceptre_role` and `template_bucket_name`) will resolve to `None` and not be used for those operations if they cannot be resolved. ``` -------------------------------- ### Sceptre Template Configuration Example (S3) Source: https://docs.sceptre-project.org/latest/docs/stack_config An example demonstrating how to configure the 'template' key to load a CloudFormation template from an S3 bucket using a custom template handler. ```yaml template: type: s3 path: infra-templates/s3/v1/bucket.yaml parameters: : "value" sceptre_user_data: ``` -------------------------------- ### Sceptre CLI Create Module Source: https://docs.sceptre-project.org/latest/_sources/apidoc/sceptre.cli Documentation for the sceptre.cli.create submodule, which likely handles the creation of resources or projects via the Sceptre CLI. ```APIDOC .. automodule:: sceptre.cli.create :members: :undoc-members: :show-inheritance: ``` -------------------------------- ### Sceptre Command Path Example Source: https://docs.sceptre-project.org/latest/_sources/docs/terminology Illustrates the structure of a Sceptre project directory and how command paths are defined for executing Sceptre commands against specific stacks or stack groups. ```text .\n└── config\n └── dev\n ├── config.yaml\n └── vpc.yaml ``` ```text .\n└── config\n └── account-1\n └── dev\n └── eu-west-1\n ├── config.yaml\n └── vpc.yaml ``` -------------------------------- ### List Stack Resources and Outputs Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Sceptre commands to retrieve information about running stacks, including listing resources and outputs for a specific stack or stack group. ```text $ sceptre list resources dev $ sceptre list resources dev/vpc.yaml $ sceptre --ignore-dependencies list outputs dev/vpc.yaml ``` -------------------------------- ### Sceptre Project Layout Example for Centralized Networking Source: https://docs.sceptre-project.org/latest/docs/architecture Example of a Sceptre project layout for centralized, company-wide networking. It demonstrates organizing VPC and subnet configurations for production and development environments. ```yaml -config - prod - vpc.yaml - public-subnet.yaml - application-subnet.yaml - database-subnet.yaml - dev - vpc.yaml - public-subnet.yaml - application-subnet.yaml - database-subnet.yaml ``` -------------------------------- ### Custom Hook Packaging (setup.py) Source: https://docs.sceptre-project.org/latest/docs/hooks This `setup.py` script demonstrates how to package a custom Sceptre hook as a Python package. It configures entry points to make the custom hook discoverable by Sceptre. ```python from setuptools import setup setup( name='custom_hook_package', py_modules=[''], entry_points={ 'sceptre.hooks': [ ' = :CustomHook', ], } ) ``` -------------------------------- ### Sceptre Command Line Help Source: https://docs.sceptre-project.org/latest/_sources/docs/cli Instructions on how to access help for the Sceptre CLI and its commands. ```text sceptre sceptre --help sceptre COMMAND --help ``` -------------------------------- ### Sceptre Project Layout Example for IAM Management Source: https://docs.sceptre-project.org/latest/docs/architecture Example of a Sceptre project layout for IAM management across multiple AWS accounts. It shows the organization of IAM role configurations for different accounts. ```yaml -config - account-1 - iam-role-admin.yaml - iam-role-developer.yaml - account-2 - iam-role-admin.yaml - iam-role-developer.yaml ``` -------------------------------- ### Sceptre HookProperty Descriptor Source: https://docs.sceptre-project.org/latest/_modules/sceptre/hooks A descriptor class for managing attributes that may contain Hook objects. It handles the setup of hooks, including cloning them for specific stacks and calling their setup methods. It supports nested lists and dictionaries. ```Python [docs] classHookProperty(object): """ This is a descriptor class used to store an attribute that may contain Hook objects. Used to setup Hooks when added as a attribute. Supports nested dictionary and lists. :param name: Attribute suffix used to store the property in the instance. :type name: str """ def__init__(self, name): self.name = "_" + name self.logger = logging.getLogger(__name__) def__get__(self, instance, type): """ Attribute getter for Hook containing data structure. :return: The attribute stored with the suffix ``name`` in the instance. :rtype: dict or list """ return getattr(instance, self.name) def__set__(self, instance: "Stack", value): """ Attribute setter which adds a stack reference to any hooks in the data structure `value` and calls the setup method. """ defsetup(attr, key, value: Hook): attr[key] = clone = value.clone_for_stack(instance) clone.setup() _call_func_on_values(setup, value, Hook) setattr(instance, self.name, value) ``` -------------------------------- ### Sceptre Create Command Line Options Source: https://docs.sceptre-project.org/latest/genindex Details the command-line options specific to the 'sceptre-create' command, including rollback control, accepting defaults, and specifying change set names and paths. ```bash --disable-rollback --enable-rollback --yes -y CHANGE_SET_NAME PATH ``` -------------------------------- ### Get Stack Status Source: https://docs.sceptre-project.org/latest/_modules/sceptre/plan/actions Retrieves the current status of a CloudFormation stack. If the stack does not exist, it returns 'PENDING'. ```python def get_status(self): try: return self._get_status() except StackDoesNotExistError: return "PENDING" ``` -------------------------------- ### Custom Resolver File Structure Source: https://docs.sceptre-project.org/latest/_sources/docs/resolvers Example file structure for a custom Sceptre resolver package. ```text custom_resolver ├── custom_resolver.py └── setup.py ``` -------------------------------- ### Sceptre Plan Modules Source: https://docs.sceptre-project.org/latest/_modules/index Documentation for modules related to planning and executing stack changes, including actions, executors, and the plan itself. ```python sceptre.plan sceptre.plan.actions sceptre.plan.executor sceptre.plan.plan ``` -------------------------------- ### Delete VPC Stack Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Command to delete the VPC stack and its associated AWS resources. ```text $ sceptre delete dev/vpc.yaml ``` -------------------------------- ### Sceptre CLI Launch Module Source: https://docs.sceptre-project.org/latest/_sources/apidoc/sceptre.cli Documentation for the sceptre.cli.launch submodule, potentially used for launching or deploying resources managed by Sceptre. ```APIDOC .. automodule:: sceptre.cli.launch :members: :undoc-members: :show-inheritance: ``` -------------------------------- ### Get Stack Timeout Configuration Source: https://docs.sceptre-project.org/latest/_modules/sceptre/plan/actions Returns the timeout configuration for a CloudFormation stack in minutes. Returns an empty dictionary if no timeout is set. ```python def _get_stack_timeout(self): if self.stack.stack_timeout: return {"TimeoutInMinutes": self.stack.stack_timeout} else: return {} ``` -------------------------------- ### Boto3 Client Retrieval Source: https://docs.sceptre-project.org/latest/_modules/sceptre/connection_manager Provides a thread-safe method to get a Boto3 client for a specified service. It caches clients to improve performance. ```python def _get_client(self, service, region, profile, stack_name, sceptre_role): """ Returns the Boto3 client associated with . Equivalent to calling Boto3.client(). Gets the client using ``boto_session``. :param service: The Boto3 service to return a client for. :type service: str :returns: The Boto3 client. :rtype: boto3.client.Client """ with self._client_lock: key = (service, region, profile, stack_name, sceptre_role) if self._clients.get(key) is None: self.logger.debug("No %s client found, creating one...", service) self._clients[key] = self._get_session( profile, region, sceptre_role ).client(service) return self._clients[key] ``` -------------------------------- ### Update VPC Stack Source: https://docs.sceptre-project.org/latest/_sources/docs/get_started Command to update an existing VPC stack if its configuration or CloudFormation template has been modified. ```text $ sceptre update dev/vpc.yaml ``` -------------------------------- ### Get Domain from Region Source: https://docs.sceptre-project.org/latest/_modules/sceptre/template Determines the appropriate domain suffix based on the provided AWS region string. It specifically checks for Chinese regions. ```Python def_domain_from_region(region): return "com.cn" if region.startswith("cn-") else "com" ``` -------------------------------- ### Sceptre CLI and Configuration Source: https://docs.sceptre-project.org/latest/_modules/sceptre/diffing/stack_differ Documentation for the Sceptre command-line interface and configuration files, including StackGroup and Stack configurations. ```documentation Command Line Interface StackGroup Config Stack Config ``` -------------------------------- ### Sceptre Project Initialization Source: https://docs.sceptre-project.org/latest/_modules/sceptre This Python code snippet initializes the Sceptre project, setting up author information, versioning, and logging handlers. It configures deprecation warnings and ensures proper library logging behavior. ```Python # -*- coding: utf-8 -*- import logging import warnings import sys from importlib.metadata import version __author__ = "SceptreOrg" __email__ = "sceptreorg@gmail.com" __version__ = version(__package__ or __name__) # Set up logging to ``/dev/null`` like a library is supposed to. # http://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library [docs] class NullHandler(logging.Handler): # pragma: no cover [docs] def emit(self, record): pass if not sys.warnoptions: warnings.filterwarnings("default", category=DeprecationWarning, module="sceptre") logging.getLogger("sceptre").addHandler(NullHandler()) ``` -------------------------------- ### Merged Dictionary Example Source: https://docs.sceptre-project.org/latest/_sources/docs/stack_group_config Illustrates the outcome of using `--merge-vars` when dealing with dictionary variables across multiple files. ```yaml tags: {"Env": "prod", "Project": "Widget"} ``` -------------------------------- ### Sceptre CLI Modules Source: https://docs.sceptre-project.org/latest/_modules/index This section lists the various modules available within the Sceptre command-line interface, including diffing, configuration, connection management, context, exceptions, helpers, hooks, planning, resolvers, and stack management. ```python sceptre.cli.diff sceptre.cli.helpers sceptre.cli.launch sceptre.cli.list ```