本站以分享各种运维经验和运维所需要的技能为主
《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实例的状态。