infarep-aws
v2.1.7
Published
AWS Bindings for Infarep
Downloads
43
Readme
AWS Bindings for Infarep
Infarep is an infastruture orchestration tool. Find out more.
This module provides the following Service Instance Types.
- elastiCacheCluster
- elastiCacheSubnetGroup
- httpEndpoint: Abstraction over API Gateway for easy endpoint creation.
- iamPolicy
- iamRole
- lambdaFunction
- rdsDbCluster
- rdsDbSubnetGroup
- secret
Configurations
With only a few exceptions, most of the Server Instance Types expect a configuration that is identical to the configuration
object expected by Amazon's aws-sdk package.
- httpEndpoint only accepts three properties
path: '/path/to/endpoint'method: 'POST'handler: 'arn for the lambda function that will handle traffic to this endpoint'
- iamRole accepts one extra property:
policies. This should be an array of policy ARNs that you would like to attach to the role.
Exposed Properties
This module is built on top of Amazon's aws-sdk. The properties exposed by each Service Instance Type are the same properties
returned by aws-sdk. Just check Amazon's documentation to determine what properties you have to work with. The one exception
to this rule is httpEndpoint which only exposes one property: url.
Different parts of the AWS SDK use different naming conventions. As a convenience to you, each Service Instance Type also exposes the resource's ARN in the arn property.
Usage
require('infarep').injectAll(); // npm --save install infarep
const awsSdk = require('aws-sdk'); // npm --save install aws-sdk
const fs = require('fs');
// Centralize project info in package.json.
defineProjectMetadata(JSON.parse(fs.readFileSync('./package.json').toString()));
defineProjectInstances({
dev: {
stateStore: require('infarep/localStateStore'),
awsSdkConfig: {
credentials: new awsSdk.SharedIniFileCredentials({ profile: 'personal' }),
region: 'us-east-1'
}
}
});
// This variable will hold the Service Instance Types that infarep-aws provides.
const aws = (() => {
// Get the AWS SDK config for the current project instance.
const { awsSdkConfig } = getCurrentProjectInstance();
// Pass the configuration to infarep-aws.
const serviceInstanceTypesProvider = require('infarep-aws')(awsSdkConfig);
// Register types & create upserters
return registerServiceInstanceTypes(serviceInstanceTypesProvider);
})();
defineProjectInfastructure(async () => {
// AWS Service Instances go here
})