Accretion CLI

The Accretion CLI is the primary point for controlling Accretion resources.

The Accretion CLI maintains configuration state in a “Deployment File”.

Warning

Accretion is under active development and is not yet stable. The below reflects the target interface for the Accretion CLI. Not all commands will work yet.

Usage

init

Initialize the DEPLOYMENT_FILE for deployments to REGIONS.

This does NOT deploy to those regions.

Run accretion update to update and fill all regions in a deployment file.

accretion init DEPLOYMENT_FILE REGIONS...

update

Update deployments in all regions described in DEPLOYMENT_FILE.

This will also initialize any empty deployment regions and complete any partial deployments.

accretion update all DEPLOYMENT_FILE

add regions

Add more REGIONS to an existing deployment description in DEPLOYMENT_FILE.

This does NOT deploy to those regions.

Run accretion update to update and fill all regions in a deployment file.

accretion add regions DEPLOYMENT_FILE REGIONS...

destroy

Destroy all resources for an Accretion deployment described in DEPLOYMENT_FILE.

Warning

This will destroy ALL resources in ALL regions. Be sure that is what you want to do before running this.

accretion destroy DEPLOYMENT_FILE

request

Request a new layer version build.

Important

These operations are currently completely asynchronous with no way of tracking a layer build through the CLI. I plan to add tooling around this later, but the exact form it will take is still TBD. mattsb42/accretion#27

raw

Request a new layer in every region in DEPLOYMENT_FILE. The Layer must be described in the Accretion format in REQUEST_FILE.

{
    "Name": "layer name",
    "Language": "Language to target",
    "Requirements": {
        "Type": "accretion",
        "Requirements": [
            {
                "Name": "Requirement Name",
                "Details": "Requirement version or other identifying details"
            }
        ]
    },
    "Requirements": {
        "Type": "requirements.txt",
        "Requirements": "Raw contents of requirements.txt file format"
    }
}

Note

The only supported language at this time is python.

accretion request raw DEPLOYMENT_FILE REQUEST_FILE

requirements

Request a new layer named LAYER_NAME in every region in DEPLOYMENT_FILE. The Layer requirements must be defined in the Python requirements.txt format in REQUIREMENTS_FILE.

accretion request DEPLOYMENT_FILE REQUIREMENTS_FILE

list

layers

List all Accretion-managed Lambda Layers and their versions in the specified region.

accretion list layers DEPLOYMENT_FILE REGION_NAME

describe

layer-version

Describe a Layer version, listing the contents of that Layer.

accretion describe layer-version DEPLOYMENT_FILE REGION_NAME LAYER_NAME LAYER_VERSION

check

Check a “Request File” for correctness.

accretion check REQUEST_FILE

Deployment File

Warning

Deployment files MUST NOT be modified by anything other than Accretion tooling.

An Accretion deployment file describes the stacks associated with a single Accretion deployment.

It is a JSON file with the following structure:

{
    "Deployments": {
        "AWS_REGION": {
            "Core": "STACK_NAME",
            "ArtifactBuilder": "STACK_NAME",
            "LayerBuilder": "STACK_NAME"
        }
    }
}

Request File

An Accretion require file describes the Layer that is being requested.

It is a JSON file with the following structure:

{
    "Name": "layer name",
    "Language": "Language to target",
    "Requirements": {
        "Type": "accretion",
        "Requirements": [
            {
                "Name": "Requirement Name",
                "Details": "Requirement version or identifying details"
            }
        ]
    },
    "Requirements": {
        "Type": "requirements.txt",
        "Requirements": "Raw contents of requirements.txt file format"
    }
}