无服务器发现- sdk-js
AWS无服务器发现SDK与发现微服务交互,以发现为无服务器架构所写的微服务端点. 这类似于集群服务,例如: 领事 或者说 动物园管理员,但没有必须被监视在线状态的事件或节点的概念. 此库旨在支持服务器一侧(用于服务到服务查询)和浏览器/客户端两方面的使用.
此工程包含用于发现服务的 Typescript/ Javascript 绑定; 其他绑定可在 阿达斯特拉德夫 日内瓦会议
安装
npm install @adastradev/serverless-discovery-sdk
使用量
服务/云层依赖
Semver版本由发现服务1.1.x支持. 传出一个 semver 兼容值 lookupService 调用以接收最新的兼容匹配版本.
服务及其所需版本也可在 cloudDependencies 领域 package.json。 。 。 .
{
"cloudDependencies": {
"service1": "1.x",
"service2": "^1.2.8-testbranch", // A pre-release version for development purposes
"service3": "3.x.x"
}
}
版本后缀值
在一些测试环境中,修改取景版本以避免与生产环境相撞可能是有用的. 如果 VERSION_POSTFIX 环境变量 运行时间,它总是会把这个附加到一个搜索呼叫的版本中.
如果您正在寻找高度搭配或不完全孤立的服务,并使用这些服务进行系统测试,应当:
- 设定
VERSION_POSTFIX环境变量设置为-staging - 将环境变量传递到正在检查的运行时间( lambda, docker等)
如果有人在寻找 服务A编辑 1.1.0,它只会说话 1.1.0-staging在环境变量存在的同时,所有查询电话将遵循类似的模式.
TL; DR 数据:如果您正在寻找不完全孤立的服务,并依赖中转环境避免在推进的数据库/资源上运行,请在您的管道中添加以下内容:.
bitbucket-pipelines.yml : (原始内容存档于2017-09-29)
- export VERSION_POSTFIX='-staging'
# Deployment steps follow...
无服务器. yml
provider:
environment:
VERSION_POSTFIX: ${env:VERSION_POSTFIX, ''}
代码示例
我建议设置一个公用功能 来处理SDK的建造, 和搜索呼叫 - 见下文的例子.
import { DiscoverySdk } from '@adastradev/serverless-discovery-sdk';
export default async function lookup(serviceName) {
const sdk = new DiscoverySdk(
process.env.DISCOVERY_SERVICE_URL,
process.env.DISCOVERY_SERVICE_REGION,
// Non-versioned services will default to lookup via this stage
process.env.DEFAULT_STAGE,
undefined,
// Create map of cloudDependencies from package.json
new Map(Object.entries(require('../path/to/package.json')['cloudDependencies'])),
);
const endpoints = await sdk.lookupService(
serviceName
);
return endpoints[0];
}