使用 TS 连接到本地使用 terraform 创建的 ec2 实例

问题描述

我的问题是:如何使用 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);
  };
}

我的 terraform 文件包含提供者和此资源

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 (将#修改为@)