@pgateway/common-services-api
v2.5.2
Published
Utility to connect to AWS API GW
Downloads
1,035
Readme
PG Common Services API library
Construct and optionally sign api gateway request using AWS credentials
To install:
npm i @pgateway/common-services-api
Prerequisite:
AWS credentials are required for calculating the signature, in ECS container the credentials are fetched remotely. If running outside of ECS containers(i.e. local), need to configure AWS CLI. If don't want to use AWS signature, set sign = false in options
Configuration:
pgCommonServicesApi.config(options)
*returns a Promise
options
| Field | Type | Default | Remark | | ------------------ | ------- | ------- | -------------------------------------------- | | endpoint | string | null | required | | sign | boolean | true | | | private | boolean | false | | | host | string | null | required if private is true | | stage | string | null | required if not using custom domain endpoint | | credentialProvider | string | null | required |
credentialProvider can be
ecs
- Means it has to be a docker container + using the IAM role for ecs tasks orec2-metadata
- Means it is using the IAM role in your instance orcredentials
- Means it is using your default AWS credentials
Examples:
Regional API with custom domain but without IAM authorization
pgCommonServicesApi.config({
endpoint: 'https://dev-common-sevices-api-pg.dcube.cf',
sign: false
});
Regional API with custom domain and IAM authorization
pgCommonServicesApi.config({
endpoint: 'https://qe-common-sevices-api-pg.dcube.cf',
sign: true
});
Regional API original url
pgCommonServicesApi.config({
endpoint: 'https://su6uqpbef3.execute-api.ap-southeast-1.amazonaws.com',
sign: false,
stage: "dev"
});
Private API without IAM authorization
pgCommonServicesApi.config({
endpoint: "https://vpce-07f6aa6800aea2c83-6meep72q.execute-api.ap-southeast-1.vpce.amazonaws.com",
sign: false,
private: true,
stage: "dev2",
host: "i4390qzy7k.execute-api.ap-southeast-1.amazonaws.com"
});
Private API IAM authorization
pgCommonServicesApi.config({
endpoint: "https://vpce-07f6aa6800aea2c83-6meep72q.execute-api.ap-southeast-1.vpce.amazonaws.com",
sign: true,
private: true,
stage: "dev2",
host: "i4390qzy7k.execute-api.ap-southeast-1.amazonaws.com"
});
API supported:
- pgCommonServicesApi.sendPushNotification(payload)
- pgCommonServicesApi.sendEmail(payload)
- pgCommonServicesApi.testApiGwConnection()
*returns a Promise
Examples
node example/example.js