添加 ec2 实例时使用现有的 vpc 和安全组

2024-02-25

有很多示例代码,但是快速改进的 cdk 包并不能帮助我找到一些(我认为)简单事物的工作示例。例如,即使我在示例中发现的导入也会失败:

import { VpcNetworkRef } from '@aws-cdk/aws-ec2';
 error TS2724: Module '"../node_modules/@aws-cdk/aws-ec2/lib"' has no exported member 'VpcNetworkRef'. Did you mean 'IVpcNetwork'?

为什么示例 ec2 代码不显示原始 ec2 实例的创建?

有帮助的是示例 cdk 代码,它使用硬编码的 VpcId 和 SecurityGroupId(我将它们作为上下文值传递)来创建一对新子网(即每个可用区 1 个),我们在其中放置一对 EC2 实例。

同样,实例的目标 VPC 和 SecurityGroup 已经存在。我们(今天)在添加新的 EC2 实例集时创建了新的子网。

我们有许多不同的环境(AWS 基础设施集),目前共享单个账户、VPC 和安全组。这将会改变,但我当前的目标是看看我们是否可以使用云开发工具包在现有模型中创建新的独特环境。今天我们有一个 CF 模板。

我不知道从哪里开始。引用现有 VPC 的示例未编译。

import { VpcNetworkRef } from '@aws-cdk/aws-ec2';
const vpc = VpcNetworkRef.import(this, 'unused', {vpcId, availabilityZones: ['unused']});

同样,实例的目标 VPC 和 SecurityGroup 已经存在。我们(今天)在添加新的 EC2 实例集时创建了新的子网。

-----编辑-------->

关于 gitter 的讨论帮助我回答了这个问题以及如何添加裸实例

const vpc - ec2.VpcNetwork.import(this, 'YOUR-VPC-NAME', {
    vpcId: 'your-vpc-id',
    availabilityZones: ['list', 'some', 'zones'],
    publicSubnetIds: ['list', 'some', 'subnets'],
    privateSubnetIds: ['list', 'some', 'more'],
});

const sg = ec2.SecurityGroup.import(this, 'YOUR-SG-NAME', {
    securityGroupId: 'your-sg-id'
});

// can add subnets to existing..
const newSubnet = new ec2.VpcSubnet(this, "a name", {
    availablityZone: "us-west-2b",
    cidrBlock: "a.b.c.d/e",
    vpcId: vpc.vpcId
});

// add bare instance
new ec2.CfnInstance(this, "instance name", {
    imageId: "an ami",
    securityGroupIds: [sg.securityGroupId],
    subnetId: newSubnet.subnetId,
    instanceType: "an instance type",
    tags: [{ key: "key", value: "value"}]
});

对我来说不需要进一步的答案。


import ec2 = require('@aws-cdk/aws-ec2');

// looking up a VPC by its name
const vpc = ec2.Vpc.fromLookup(this, 'VPC', {
  vpcName: 'VPC-Name'
});


// looking up an SG by its ID
const sg = ec2.SecurityGroup.fromSecurityGroupId(this, 'SG', 'SG-ID')


// creating the EC2 instance
const instance = new ec2.Instance(this, 'Instance', {
  vpc: vpc,
  securityGroup: sg,
  instanceType: new ec2.InstanceType('m4.large'),
  machineImage: new ec2.GenericLinuxImage({
    'us-east-1': 'ami-abcdef' // <- add your ami-region mapping here
   }),
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加 ec2 实例时使用现有的 vpc 和安全组 的相关文章

随机推荐

  • Matplotlib Pandas 日期时间频率

    我正在尝试使用 matplotlib 绘制一些数据 并希望减少显示的 DateTime x 轴刻度数 我能够使用 plt locator 将垃圾箱的数量减少一半 但日期时间与条形不对齐 有什么办法可以解决这个问题吗 我希望只显示 10 个刻
  • 使用javascript或jquery动态添加Div到html页面

    我想要一个主 div 并且能够动态添加与主 div 处于同一级别的新 div 像这样的事情 div div div div 任何帮助都会很棒 parent div append div div 或者如果你想要新创建的 div s 出现在其他
  • 使用 XOR 和补码解析位

    当向量中的所有其他数字恰好出现三次时 我无法找到仅出现一次的数字 class Solution public int singleNumber vector
  • JSP EL 和自动完成

    在我的 servlet 中 request setAttribute list myList 在我的 Jsp 中
  • 适用于 Android 的 Firebase Cloud Messaging 中的 InvalidRegistration 错误

    我正在开发一个使用推送通知功能的 Android 应用程序 我需要从服务器推送 我使用 Firebase 这是我第一次使用 Firebase 但是当我使用 PHP 和 CURL 从服务器推送时 它给了我无效的注册错误 我像这样在 Andro
  • 将配置单元行分组到此行的数组中

    我有一个如下表 User String Alias String JohnDoe John JohnDoe JDoe Roger Roger 我想将用户的所有别名分组在一个数组中 在一个新表中 如下所示 User String Alias
  • 使用 Openshift 的裸域

    我在使用 Google 的 GAE 云产品时遇到的最大问题之一是它无法处理裸域 它可以处理子域 www 但不能处理裸域 这是一个大问题 因为您的应用程序将无法处理客户端请求中的 PATH 或子目录 因为它在 DNS 转发到 www 子域期间
  • 在 R 中创建空间集群 LISA 地图

    我想创建一张显示现象的局部空间集群的地图 最好使用局部莫兰 LISA 在下面的可重现示例中 我使用以下方法计算本地莫兰指数spdep但我想知道是否有简单的方法来映射簇 最好使用ggplot2 Help library UScensus200
  • 即使添加控制台插件后,console.log 在 iOS Phonegap 应用程序中也不起作用

    我在 Cordova CLI 中创建了一个 Phonegap iOS 应用程序 我已经添加了控制台插件 是的 deviceready 被成功调用 但是 console log 不起作用并且不会在 XCode 日志中打印任何内容 插件安装 科
  • AWS X-Ray GoLang Lambda 到 lambda 跟踪并显示在服务地图中

    我有一个 API 网关 它在 Go 中调用 Lambda 函数 1 和 Lambda 函数 2 我想看到这两个函数加入到服务映射中 到目前为止 我能够做到这一点的唯一方法是创建一个自定义分段 例如称为 父级 并从此上下文创建一个子分段 例如
  • 无法让 pip install 在 EMR 集群上运行

    我有一个 EMR emr 5 30 0 集群 我尝试从 S3 中的引导文件启动 引导程序文件的内容是 bin bash sudo pip3 install user matplotlib pandas pyarrow pyspark 我的
  • Android 4.4 KitKat 未收到 cookie

    在我的应用程序中 我向服务器发送 POST 请求 并从服务器接收响应 我从响应中收集了不同的 cookie 特别是用户信息 因此 我发送登录请求并在服务器响应后接收 cookie 以保持登录 在 Android 4 3 及更低版本中 我可以
  • Web 服务作为 JAR 文件,还是另一个 WAR 中的 WAR?

    我有一个在 Tomcat 6 上运行的 SOAP Web 服务 使用 Spring Web Services Java 现在我想将此 Web 服务合并到另一个大型 Web 应用程序中 使用 Spring Java 而不是 Web 服务 并使
  • 如何使用 mDNS 将所有子域路由到单个主机?

    我有一个开发网络服务器托管为 myhost local 它是使用 Bonjour mDNS 找到的 服务器正在运行 avahi daemon 网络服务器还希望处理其自身的任何子域 例如 cat myhost local 和 dog myho
  • 如何在Java中将一个双精度数按点分割成两个十进制数?

    尝试按点将双精度数分成两个小数部分 像这样 1 9变成1和9 0 16分为0和16 这就是我所做的 但似乎有点多余 最好的方法是什么 原始编号始终为 Just 0 x 或 1 x 或 0 xx 或 1 xx 且 xx gt 10 doubl
  • 从 KeyMembers 中获取身份字段

    我想得到KeyMembers我在 Edmx 中设置的位置StoreGeneratedPattern to Identity有没有办法做到这一点 我可以使用以下代码获取 KeyMembers private static IEnumerabl
  • Flink 中的水印和触发器有什么区别?

    我读到 排序运算符必须缓冲它接收到的所有元素 然后 当它接收到水印时 它可以对时间戳低于水印的所有元素进行排序 并按排序顺序发出它们 这是正确 因为水印表明不能有更多元素到达并与已排序元素混合 https cwiki apache org
  • 在 Ansible 中使用 BuildKit 进行 docker 构建

    我正在使用这个 Ansible 模块community docker docker image构建 docker 镜像 我想用 secret标志 因此我需要启用 BuildKit 我确实编辑了 etc docker daemon json文
  • 使用 Python 从 Javascript 中提取文本

    我一直在查看如何执行此操作的示例 但不太明白 我正在使用 beautifulsoup 来抓取一些数据 我可以使用它来查找我想要的数据 但它包含在以下代码块中 我正在尝试从中提取时间戳信息 我有一种感觉正则表达式在这里工作 但我似乎无法弄清楚
  • 添加 ec2 实例时使用现有的 vpc 和安全组

    有很多示例代码 但是快速改进的 cdk 包并不能帮助我找到一些 我认为 简单事物的工作示例 例如 即使我在示例中发现的导入也会失败 import VpcNetworkRef from aws cdk aws ec2 error TS2724