Socket
Book a DemoInstallSign in
Socket

@xapp/serverless-transfer-cf-outputs-plugin

Package Overview
Dependencies
Maintainers
5
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xapp/serverless-transfer-cf-outputs-plugin - npm Package Compare versions

Comparing version

to
0.0.9

.npmignore

@@ -5,2 +5,17 @@ # Change Log

<a name="0.0.9"></a>
## [0.0.9](https://github.com/XappMedia/serverless-transfer-cf-outputs-plugin/compare/v0.0.8...v0.0.9) (2019-01-29)
<a name="0.0.8"></a>
## [0.0.8](https://github.com/XappMedia/serverless-transfer-cf-outputs-plugin/compare/v0.0.7...v0.0.8) (2019-01-29)
<a name="0.0.7"></a>
## [0.0.7](https://github.com/XappMedia/serverless-transfer-cf-outputs-plugin/compare/v0.0.6...v0.0.7) (2019-01-29)
<a name="0.0.6"></a>

@@ -7,0 +22,0 @@ ## [0.0.6](https://github.com/XappMedia/serverless-transfer-cf-outputs-plugin/compare/v0.0.5...v0.0.6) (2019-01-21)

15

package.json
{
"name": "@xapp/serverless-transfer-cf-outputs-plugin",
"version": "0.0.6",
"description": "This is a plugin that can be used by Serverless transfer Cloudformation output items from another region.",
"version": "0.0.9",
"description": "This is a plugin that can be used by Serverless transfer CloudFormation output items from another region.",
"main": "dist/index.js",
"scripts": {
"clean": "rm -rf ./node_modules && rm -rf ./outputs && rm -rf ./dist",
"build": "tslint ./src/**/*.ts && tsc",
"build": "tsc",
"lint": "tslint 'src/**/*.ts' && tslint 'test/**/*.ts'",
"pretest": "npm run build",
"test": "nyc mocha \"./test/**/*.ts\"",
"version:release": "standard-version --message 'v%s'",
"version:release": "standard-version --message '[skip ci] v%s'",
"postversion:release": "git push --follow-tags origin master && npm publish",

@@ -17,2 +18,6 @@ "prepublishOnly": "npm run build"

"license": "ISC",
"repository": {
"type": "git",
"url": "git+https://github.com/XappMedia/serverless-transfer-cf-outputs-plugin.git"
},
"devDependencies": {

@@ -25,3 +30,3 @@ "@types/chai": "4.1.7",

"@types/sinon-chai": "3.2.2",
"@xapp/serverless-plugin-types": "0.1.5",
"@xapp/serverless-plugin-type-definitions": "0.1.20",
"aws-sdk-mock": "4.3.0",

@@ -28,0 +33,0 @@ "chai": "4.2.0",

# serverless-transfer-cf-outputs-plugin
This plugin will transfer CloudFormation output variables from one region to another.
This Serverless plugin will transfer CloudFormation output variables from one region to another.
Why would you want to do this?
In case you have a resource that only exists in one region, but you have resources in other regions which
want talk to this resource. You can output the ARN or URL of that resource like you normally would, this
plugin will import them to other Serverless projects.
# Install
`npm install --save-dev @xapp/serverless-transfer-cf-outputs-plugin`
# How
Say you have a Redshift server in the `us-east-1`. The `serverless.yml` would be something like this:
serverless.yml
```
provider:
...
region: us-east-1
...
resources:
Resources:
myRedshift:
Type: "AWS::Redshift::Cluster"
Properties:
AutomatedSnapshotRetentionPeriod: 7
ClusterType: "single-node"
DBName: "mydatabase"
MasterUsername: "master_user"
MasterUserPassword: ${ssm:super-secret-password~true}
NodeType: dc2.large
... Further properties
Outputs:
RedshiftAddress:
Value:
Fn::GetAtt:
- myRedshift
- Endpoint.Address
Export:
Name: redshift-MyRedshiftAddress
RedshiftPort:
Value:
Fn::GetAtt:
- myRedshift
- Endpoint.Port
Export:
Name: redshift-MyRedshiftPort
```
This is only going to be deployed in one region. It's annoying because the
address of this can not be guessed or you have to manually hunt it down
and hardcode it in other `serverless.yml` files which are multi-region.
That's where this plugin comes in. You can create a multi-region
Serverless package and import both the port and address of the redshift server.
serverless.yml
```
plugins:
- "serverless-transfer-cf-outputs-plugin"
config:
cfTransfer:
regions:
- region: us-east-1
cfOutputs:
- redshift-MyRedshiftAddress
- redshift-MyRedshiftPort
functions:
myLambdaWhichTalksToRedshift:
handler: Handler.handler
role: MyLambdaWhichTalksToRedshiftRole
environment:
REDSHIFT_ADDRESS:
Fn::ImportValue: redshift-MyRedshiftAddress
REDSHIFT_PORT:
Fn::ImportValue: redshift-MyRedshiftPort
... The remaining setup.
```
If deploying in regions other than `us-east-1`, the plugin will scan the `serverless.yml`
file and replace the `Fn::ImportValue` statements with the correct exported value from the
`us-east-1` CloudFormation stack.
# Config
The `config` for this plugin must always be `cfTransfer`. The full details are:
```
config:
cfTransfer:
config:
## Optional: This is the profile which has access to the CloudFormation stack. If not provided, then `default` is used.
awsProfile: <profile>
regions:
## Required: This is the region the values are exported from.
- region: <region>
## Required: These are the values which are to be imported from the CloudFormation stacks.
cfOutputs:
- <output>
```
SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.