infarep-aws

2.1.7 • Public • Published

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
})

Readme

Keywords

none

Package Sidebar

Install

npm i infarep-aws

Weekly Downloads

0

Version

2.1.7

License

ISC

Unpacked Size

45 kB

Total Files

16

Last publish

Collaborators

  • duncpro