【Terraform学习】使用 Terraform创建Lambda函数启动EC2(Terraform-AWS最佳实战学习)

 本站以分享各种运维经验和运维所需要的技能为主

《python》:python零基础入门学习

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》持续更新中

下面开始学这次的内容:

使用 Terraform创建Lambda函数启动EC2

实验步骤

前提条件

  • 安装 Terraform: 地址

下载仓库代码模版

  • 本实验代码位于 task_lambda 文件夹中

  • main.tf

   

  • 在上面的代码中,您将执行以下任务

    • 创建使用案例为 Lambda 的IAM角色

    • 为Lambda IAM角色,附加AdministratorAccess权限。

    • 最后,创建 Lambda 函数上传代码


启动EC2实例的代码

  • 可以参考:  文档

  • 代码编写完成后

  • 将其压缩为.zip文件

    • zip test.zip [被压缩文件名]


使用 Terraform 部署

  • 确保您这些文件在同一位置

  • 通过运行以下命令初始化 Terraform

    • terraform init

    • 注意:terraform init检查所有插件依赖项下载它们

  • 查看生成计划,请运行以下命令

    • terraform plan

  • 创建在 main.tf 配置文件中声明的所有资源 ,请运行以下命令

    • terraform apply

  • 您将能够看到将要创建的资源,通过输入 yes 批准所有资源的创建

  • terraform apply 命令最多可能需要 2 分钟才能创建资源


检查 AWS 控制台中的资源

  • 确保您位于美国东部(弗吉尼亚北部)us-east-1 区域

  • 通过单击 AWS 控制台顶部导航到 Lambda

  • 单击您创建的Lambda函数

  • 您将能够看到Lambda函数代码已准备就绪。 

  

  • 导航到配置权限选项卡“执行角色”

  • 验证角色是否成功创建,并包含AdministratorAccess权限。 

 


执行 Lambda函数 启动EC2实例

  • 回到Lambda函数,单击Test按钮执行Lambda函数

  • 现在您将能够看到结果为Succeeded成功执行

  • AWS 控制台顶部导航到 EC2

  • 导航到左侧面板“实例”下的“实例”

  • 您可以看到创建的实例。您可以检查我们在 Lambda 代码中应用的配置,例如AMI信息等。

 

补充简易理解案例:

要使用Terraform创建Lambda函数并启动EC2,您需要先安装并配置Terraform。然后,您可以创建一个Terraform配置文件,定义Lambda函数和EC2实例的配置。

以下是一个示例Terraform配置文件,用于创建一个Lambda函数和一个EC2实例:

# 定义Lambda函数
resource "aws_lambda_function" "lambda_function" {
function_name = "my-lambda-function"
s3_bucket = "my-bucket"
s3_key = "my-lambda-function.zip"
role = "my-role-arn"
handler = "index.handler"
}# 定义EC2实例
resource "aws_instance" "ec2_instance" {
instance_type = "t2.small"
ami = "ami-0abcdef1234567890"
key_name = "my-key-pair"
security_groups = ["my-security-group"]
subnet_id = "my-subnet-id"
}

在上面的示例中,我们定义了一个名为my-lambda-function的Lambda函数,并将其与一个S3桶和密钥关联。我们还定义了一个名为my-role-arn的角色,该角色具有执行Lambda函数的权限。然后,我们定义了一个名为ec2_instance的EC2实例,并指定了实例类型、AMI、密钥对、安全组和子网ID。

接下来,您需要将此配置文件保存为.tf文件,并在终端中导航到该文件所在的目录。然后,您可以使用以下命令初始化Terraform:

terraform init

这将下载并安装Terraform所需的云提供商插件和模块。接下来,您可以使用以下命令应用配置文件中的更改:

terraform apply

Terraform将根据配置文件中的定义创建Lambda函数和EC2实例。如果一切顺利,您将看到一条消息指示成功应用更改。您可以通过运行以下命令来查看Terraform状态:

terraform state show aws_lambda_function.lambda_function

这将显示Lambda函数的详细信息,包括其名称、配置和版本。您可以使用类似的方法来查看EC2实例的状态。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/117051.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Netty-ChannelPipeline

EventLoop可以说是 Netty 的调度中心,负责监听多种事件类型:I/O 事件、信号事件、定时事件等,然而实际的业务处理逻辑则是由 ChannelPipeline 中所定义的 ChannelHandler 完成的,ChannelPipeline 和 ChannelHandler应用开发的过程…

专门针对开发人员,攻击者利用Rust获取操作系统信息

近日,研究人员在 Rust 编程语言的 crate 注册表中发现了一些恶意软件包,专门针对开发人员。 Phylum 在上周发布的一份报告中称,这些库是由一个名为 "amaperf "的用户在 2023 年 8 月 14 日至 16 日之间上传的。现已删除的软件包名…

【kubernetes系列】Calico原理及配置

概述 Calico是针对容器,虚拟机和基于主机的本机工作负载的开源网络和网络安全解决方案。 Calico支持广泛的平台,包括Kubernetes,OpenShift,Docker EE,OpenStack和裸机服务。 Calico在每个计算节点都利用Linux Kernel实…

改革企业治理结构,建立国有企业全面预算管理制度

随着我国市场经济的推广,国有企业进入到改革发展的必经之路上,企业应当结合自身实际情况加强成本管控,提高管理效率,为企业的发展提供有力保障。近年来,全面预算管理的理念在国有企业实施范围内不断扩大,加…

企业知识管理的解决方案

人们发现,挖掘知识、创造知识、生产知识,用知识为自己的产品赋予高附加值,才是企业和社会可持续发展的动力之源。所以知识管理越来越受到重视。 知识管理作为一个新兴的管理概念,已经被学术界所接受,但尚未形成一个…

python3+requests:接口自动化测试(二)

前言:上篇文章python3requestsunittest:接口自动化测试(一):已经介绍了基于unittest框架的实现接口自动化,但是也存在一些问题,比如最明显的测试数据和业务没有区分开,接口用例不便于…

Android OTA 相关工具(八) 使用 lpadd 添加镜像到 super.img

文章目录 1. lpadd 的编译2. lpadd 的帮助信息3. lpadd 的用法3.1 准备工作empty 的 super 设备镜像raw 格式的 super 设备镜像sparse 格式的 super 设备镜像 3.1 lpadd 分区操作示例 4. 其它 我一直以为没有人会使用 lpadd 工具,就像我以为没有人会去使用 lpmake 手…

Netty源码NioEventLoop解析

带着问题源码 Netty 的 NioEventLoop 是如何实现的?它为什么能够保证 Channel 的操作是线程安全的?Netty 如何解决 JDK epoll 空轮询 Bug?NioEventLoop 是如何实现无锁化的? 一、作用与设计原理 Netty的NioEventLoop并不是一个存…

无涯教程-Android - 应用组件

应用程序组件是Android应用程序的基本组成部分,这些组件需要在应用程序清单文件 AndroidManifest.xml 注册,该文件描述了应用程序的每个组件以及它们如何交互。 Android应用程序可以使用以下四个主要组件- Sr.NoComponents & 描述1 Activities 它们…

2023-9-2 Kruskal算法求最小生成树

题目链接&#xff1a;Kruskal算法求最小生成树 #include <iostream> #include <algorithm>using namespace std;const int N 200010;// 与并查集中的p含义相同 int p[N];struct Edge {int a, b, w;bool operator< (const Edge & W)const{return w < W.w…

浅析Linux SCSI子系统:错误恢复

文章目录 概述SCSI错误恢复处理添加错误恢复命令错误恢复线程scsi_eh_ready_devs IO超时处理相关参考 概述 IO路径是一个漫长的过程&#xff0c;从SCSI命令请求下发到请求完成返回&#xff0c;中间的任何一个环节出现问题都会导致IO请求的失败。从SCSI子系统到低层驱动&#x…

【快手小玩法-弹幕游戏】开发者功能测试报告提交模板

背景 快手有明确的要求&#xff0c;准入和准出更加严格&#xff0c;要求有明确的测试报告。格式如下&#xff1a; *本文参考字节wiki&#xff1a;CP侧测试报告模板(复制填写轻雀文档) 其他文章推荐&#xff1a;【抖音小玩法-弹幕游戏】开发者功能测试报告提交模板 一、前言…

Java后端开发面试题——集合篇

ArrayList底层的实现原理是什么 底层数据结构 ArrayList底层是用动态的数组实现的 初始容量 ArrayList初始容量为0&#xff0c;当第一次添加数据的时候才会初始化容量为10 扩容逻辑 ArrayList在进行扩容的时候是原来容量的1.5倍&#xff0c;每次扩容都需要拷贝数组 添加逻…

MMSegmentation训练自己的语义分割数据集

全流程&#xff0c;训练语义分割数据集 数据标注json转mask 运行源码MMSegmentation模型选择运行部分 数据标注 # 安装 pip install labelme # 启动labelme labelme然后 ctrl N 开启多边形标注即可&#xff0c;命名类为person 之后会保存到同目录下json文件&#xff1a; js…

WordPress(6)网站侧边栏倒计时进度小工具

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 效果图在这里插入图片描述一、添加位置二、主题style.css文件中添加美化1.引入库2.添加自定义的HTML模块效果图 提示:以下是本篇文章正文内容,下面案例可供参考 一、添加位置 在主题中 child.js…

【1++的数据结构】之AVL树

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的数据结构】 文章目录 一&#xff0c;什么是AVL树二&#xff0c;AVL树的插入三&#xff0c;AVL树的旋转3.1 向左旋转3.2 向右旋转3.3 左右双旋3.4 右左双旋 四&#xff0c;验证AVL树是否平衡 …

Data truncation: Out of range value for column ‘id‘ at row 1

错误信息&#xff1a;Data truncation: Out of range value for column id at row 1 数据截断&#xff1a;第1行“id”列的值超出范围 很多人会回复&#xff1a;数据库 类型由int改为 bigInt 我看了表结构 可以放的下的。 是 bigint(20) 没有问题啊。 默认的 bigint 类型…

C语言面试题值反转字符串

知识捡漏本 1.C语言优先级 &#xff1a;左高于高于 右 2.定义宏函数product&#xff0c;调用product后&#xff0c;里面的i和i都是加两次1&#xff0c;i就是两个加2后的i相乘&#xff0c;i是开始的i和1后的i相乘。 3.用i (j4,k 8,m 16);这种定义方法&#xff0c;最终i和最后一…

dji uav建图导航系列()ROS中创建dji_sdk节点包(一)项目结构

文章目录 1、整体项目结构1.1、 目录launch1.2、文件CMakeLists.txt1.3、文件package.xml1.4、目录include1.4、目录srv在ROS框架下创建一个无人机的节点dji_sdk,实现必需的订阅(控制指令)、发布(无人机里程计)、服务(无人机起飞降落、控制权得很)功能,就能实现一个类似…

全球免费编程教育网站:Code.org

全球免费编程教育网站&#xff1a;Code.org 官网地址注册使用 你还在为小朋友的编程教育而发愁吗&#xff1f; 你还在为小朋友放假无聊而头疼吗&#xff1f; 他来了他来了&#xff0c;全球免费编程教育网站来了。 2013年成立的Code.org是一个非营利组织。 它致力于为年轻女子、…