cloudformation-cli-go-plugin

module
v1.0.1-0...-b79cbba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 31, 2020 License: Apache-2.0

README

AWS CloudFormation Resource Provider Go Plugin

The CloudFormation CLI (cfn) allows you to author your own resource providers that can be used by CloudFormation.

This plugin library helps to provide Go runtime bindings for the execution of your providers by CloudFormation.

Usage

If you are using this package to build resource providers for CloudFormation, install the CloudFormation CLI Go Plugin - this will automatically install the the CloudFormation CLI! A Python virtual environment is recommended.

pip3 install cloudformation-cli-go-plugin

Refer to the documentation for the CloudFormation CLI for usage instructions.

Development

For changes to the plugin, a Python virtual environment is recommended. Check out and install the plugin in editable mode:

python3 -m venv env
source env/bin/activate
pip3 install -e /path/to/cloudformation-cli-go-plugin

You may also want to check out the CloudFormation CLI if you wish to make edits to that. In this case, installing them in one operation works well:

pip3 install \
  -e /path/to/cloudformation-cli \
  -e /path/to/cloudformation-cli-go-plugin

That ensures neither is accidentally installed from PyPI.

Linting and running unit tests is done via pre-commit, and so is performed automatically on commit. The continuous integration also runs these checks. Manual options are available so you don't have to commit:

# run all hooks on all files, mirrors what the CI runs
pre-commit run --all-files
# run unit tests only. can also be used for other hooks, e.g. black, isort, pytest-local
pre-commit run pytest-local

Getting started

This plugin create a sample Go project and requires golang 1.8 or above and godep. For more information on installing and setting up your Go environment, please visit the official Golang site.

License

This library is licensed under the Apache 2.0 License.

Directories

Path Synopsis
cfn
Package cfn contains functionality to handle CloudFormation resource providers imeplement in Go.
Package cfn contains functionality to handle CloudFormation resource providers imeplement in Go.
cfnerr
Package cfnerr defines a custom error type used by the RPDK Go plugin.
Package cfnerr defines a custom error type used by the RPDK Go plugin.
credentials
Package credentials providers helper functions for dealing with AWS credentials passed in to resource providers from CloudFormation.
Package credentials providers helper functions for dealing with AWS credentials passed in to resource providers from CloudFormation.
encoding
Package encoding defines types and functions used for dealing with stringified-JSON.
Package encoding defines types and functions used for dealing with stringified-JSON.
handler
Package handler contains types that are passed into and out of a resource provider's CRUDL functions.
Package handler contains types that are passed into and out of a resource provider's CRUDL functions.
metrics
Package metrics handles sending metrics about resource providers to CloudWatch
Package metrics handles sending metrics about resource providers to CloudWatch
scheduler
Package scheduler handles rescheduling resource provider handlers when required by in_progress events.
Package scheduler handles rescheduling resource provider handlers when required by in_progress events.
Package examples contains example resource provider implementations.
Package examples contains example resource provider implementations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL