@xapp/serverless-transfer-cf-outputs-plugin
Advanced tools
Comparing version
@@ -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) |
{ | ||
"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", |
111
README.md
# 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> | ||
``` |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
146276
1056.51%4234
3013.24%111
3600%0
-100%5
-61.54%