问题描述
我的问题是:如何使用 typescript 连接到在 local(localstack) 中使用 terraform 创建的 ec2 实例
这是我的课:
import * as Redis from 'redis';
export default class RedisService {
private client: Redis.RedisClient;
constructor(
host: string = process.env.REdis_HOST || 'localhost',port: string = process.env.REdis_PORT || '6379',) {
this.client = Redis.createClient({ host,port: parseInt(port,10) });
}
public set = (
key: string,data: any,expiration: number,): Promise<any> | Boolean => {
if (data) {
return new Promise((resolve,reject) => {
this.client.setex(key.trim(),expiration,JSON.stringify(data),(err,reply) => this.handlerRedisReturn(err,reply,resolve,reject,false));
});
}
return false;
};
...
// Handlers
private handlerRedisReturn = (
err: any,resolve: Function,reject: Function,jsonParse?: boolean,) => {
if (err) return reject(err);
return jsonParse ? resolve(JSON.parse(data)) : resolve(data);
};
}
resource "aws_instance" "my_ec2" {
ami = "ami-0fc970315c2d38f01"
instance_type = "t2.micro"
user_data = <<-EOF
#!/bin/bash
yum -y update
amazon-linux-extras install epel -y
yum install -y redis
systemctl start redis
EOF
}
查看我的实例的状态 aws --endpoint="http://localhost:4566" ec2 describe-instance-status --instance-ids i-4bbdf14e44d96325e
{
"InstanceStatuses": [
{
"AvailabilityZone": "us-east-1a","InstanceId": "i-4bbdf14e44d96325e","InstanceState": {
"Code": 16,"Name": "running"
},"InstanceStatus": {
"Details": [
{
"Name": "reachability","Status": "passed"
}
],"Status": "ok"
},"SystemStatus": {
"Details": [
{
"Name": "reachability","Status": "ok"
}
}
]
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)