【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)

这篇具有很好参考价值的文章主要介绍了【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

《shell》:shell学习

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

《k8》暂未更新

《docker学习》暂未更新

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

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

《运维日常》持续更新中

下面继续开始我们的terraform的学习,这次是学习创建s3.

使用 Terraform创建 S3 存储桶事件

实验步骤

前提条件

  • 安装 Terraform: 地址

下载仓库代码模版

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

  • 变量文件 variables.tf

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

  • 在上面的代码中,您将声明aws_access_keyaws_secret_key和 区域变量

  • 还声明了电子邮件地址变量

  • terraform.tfvars

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  

  • 在上面的代码中,您将定义变量的值

  • main.tf

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws 【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

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

    • 创建 Amazon S3 存储桶

    • 由于存储桶名称为全局唯一,因此还创建了一个随机字符串,该字符串将生成并添加到存储桶名称的末尾

    • 创建一个 SNS 主题添加 SNS 主题的访问策略。让您的 SNS 主题有权根据 S3 存储桶事件发送通知

    • 创建 SNS 主题后,让我们创建对该主题的订阅

    • 我们将以电子邮件作为协议创建订阅。

    • 电子邮件终端节点,即电子邮件地址将由您在变量中定义

    • 最后,创建 S3 存储桶事件通知添加 SNS 主题

    • 这样,每当有对象上传到 S3 存储桶时,它都会向订阅 SNS 主题的电子邮件发送事件通知

  • outputs.tf,将输出S3 存储桶名称和 SNS 主题 ARN 

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws


使用 Terraform 部署

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

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

    • terraform init

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

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

    • terraform plan

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

    • terraform apply

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

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


检查 AWS 控制台中的资源

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

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

  • 单击您创建的存储桶

  • 切换到属性选项卡并向下滚动查找事件通知选项。 

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  

  • 导航到 SNS

  • 您将能够看到我们使用Terraform创建的SNS主题。 

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws  

  • 单击该主题,在“订阅”选项卡中,您将看到已创建的订阅以及您的电子邮件地址

  • 订阅的状态为“等待确认”

  • 您将收到一封电子邮件,以确认您的 SNS 订阅。如果您在收件箱中没有看到该电子邮件,请检查您的垃圾邮件

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws 

  • 单击“确认订阅”

【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws 

  • 您的电子邮件地址现已订阅 SNS 主题 my-s3-event-notification

  • 您可以导航到 SNS 主题的订阅选项卡进行确认。刷新页面,订阅状态将显示为“已确认”


将对象上传到 S3 存储桶并测试 SNS 通知

  • 菜单导航到 S3

  • 单击您创建的存储桶

  • 在存储桶中的“对象”下,单击“上传”

  • 现在,单击“添加文件”并从本地系统上传任何文件

  • 文件成功上传到 S3 存储桶后,单击关闭。现在,您可以在“对象”下看到上传的对象文件。

  • 导航到您的电子邮箱检查 SNS 通知。请保持刷新,因为接收通知可能需要一些时间

  • 您已成功收到基于 S3 存储桶中的 PUT 对象事件的 SNS 通知

 【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习),terraform,terraform,学习,aws

补充: 简易理解-常用的创建s3过程

要使用 Terraform 创建 S3 存储桶事件,您需要使用 Terraform 的 S3 存储桶资源模块和事件通知模块。

以下是一个示例 Terraform 配置文件,用于创建一个名为 "my-bucket" 的 S3 存储桶,并设置其事件通知:


# 定义 AWS provider
provider "aws" {
  region = "us-east-1"
}

# 定义 S3 存储桶
resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-bucket"
  acl    = "private"
}

# 定义 SNS 主题
resource "aws_sns_topic" "my_topic" {
  name = "my-topic"
}

# 定义 S3 存储桶事件通知
resource "aws_s3_bucket_notification" "bucket_notification" {
  bucket = "${aws_s3_bucket.my_bucket.id}"

  lambda_function {
    lambda_function_arn = "${aws_lambda_function.my_lambda.arn}"
    events             = ["s3:ObjectCreated:*"]
  }

  sns_topic {
    topic_arn    = "${aws_sns_topic.my_topic.arn}"
    events       = ["s3:ObjectCreated:*"]
  }
}

在上面的配置中,我们首先定义了一个名为 "my-bucket" 的 S3 存储桶,并将其 ACL(访问控制列表)设置为 "private"。然后,我们创建了一个名为 "my-topic" 的 SNS 主题。最后,我们使用 aws_s3_bucket_notification 资源模块创建了一个 S3 存储桶事件通知。该通知将 S3 存储桶的 "s3:ObjectCreated:*" 事件路由到两个地方:一个 Lambda 函数和一个 SNS 主题。您可以将这些值替换为您自己的 Lambda 函数和 SNS 主题的 ARN。

要应用此配置并创建 S3 存储桶事件,请在终端中运行以下命令:

terraform apply

这将创建一个名为 "my-bucket" 的 S3 存储桶,并将事件通知配置应用于该存储桶。文章来源地址https://www.toymoban.com/news/detail-685953.html

到了这里,关于【Terraform学习】使用 Terraform创建 S3 存储桶事件(Terraform-AWS最佳实战学习)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Terraform学习】使用 Terraform 创建应用程序负载均衡器(Terraform-AWS最佳实战学习)

    前提条件 安装 Terraform : 地址 下载仓库代码模版 本实验代码 位于  task_elb  文件夹中 。 变量文件  variables.tf        在上面的代码中,您将 声明 , aws_access_key , aws_secret_key 和  区域变量 。 terraform.tfvars       在上面的代码中,您将 定义变量的值 。 main.tf        在

    2024年02月10日
    浏览(43)
  • 【Terraform学习】使用 Terraform创建Lambda函数启动EC2(Terraform-AWS最佳实战学习)

     本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解决分享 《日志收集》ELK+各种中间件 《运

    2024年02月11日
    浏览(51)
  • 【Terraform学习】Terraform-AWS部署快速入门(快速入门)

     本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ce

    2024年02月15日
    浏览(52)
  • TerraForm是一个基础设施自动化工具,它可以自动创建、更新、删除IT基础设施(例如服务器、网络设备、存储系统等Ten things you didn‘t know about Terraform

    作者:禅与计算机程序设计艺术 TerraForm是一个基础设施自动化工具,它可以自动创建、更新、删除IT基础设施(例如服务器、网络设备、存储系统等)上的云资源配置。Terraform 的主要优点包括: 声明式语法: TerraForm 使用描述性语言而不是编程语言来描述期望的资源状态,这

    2024年02月07日
    浏览(56)
  • 使用 Terraform 创建K8S集群

    Terraform 是一个开源的基础设施即代码 (Infrastructure as Code, IaC) 工具,由 HashiCorp 公司开发和维护。它用于自动化和管理云基础设施、服务和资源的创建、配置和部署。Terraform 允许开发人员和运维团队以声明性的语言描述基础设施,并使用代码的方式来管理基础设施,从而提高

    2024年02月08日
    浏览(38)
  • 使用 Terraform 与事件驱动的 Amazon CodeBuild 提升云上数据应用运维效率

    背景信息 企业客户在云上部署的一系列数据应用的过程中,数据开发团队往往负责脚本内容,而其背后一系列云上资源的管理通常由一支云运维职能团队通过 IaC(Infrastructre as Code)实现。然而,当数据开发团队开发及部署相应脚本内容时,不可避免会涉及到云上资源的变动

    2024年02月12日
    浏览(32)
  • 【Terraform学习】Terraform_count使用(Terraform配置语言学习)

    一、简单使用:对于一些需要起多个重复的实例有用 当我们在Terraform 模板里面创建资源的时候,如果有多个重复的资源,我们可以通过count来指定个数,他会自动执行一个类似for loop的循环,然后我们可以通过count.index 来指向他每次循环的索引值。从编程的思维来理解,就是

    2024年02月12日
    浏览(42)
  • Hadoop 集群中使用 S3(对象存储)文件系统

    Hadoop 自带 S3 依赖,位置如下: 但是这些依赖包默认不在 hadoop classpath 下面。可以使用以下两种方法引入这两个包: 修改hadoop的core-site.xml文件: s3的配置模板(记得修改成自己的 secret key 与 access key ) 更改完毕并重启集群后 测试hdfs dfs -ls s3a://hive0614/ 等命令操作 S3 中的文件

    2024年02月06日
    浏览(44)
  • 如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站

    如何使用 Cloudflare 为 S3 存储桶网站添加 HTTPS在支持 HTTPS 和自定义域的 S3 存储桶中托管静态网站 AWS S3 提供了一种将文件存储在高度可用的对象存储中的简单方法,它还支持设置静态网站。如果您不需要动态内容,那么使用 S3 存储桶是一个很有吸引力的托管选项。您几乎不需

    2024年02月04日
    浏览(56)
  • 使用Ceph对象存储的Amazon S3接口(基于nautilus版本)

    Ceph是一个分布式存储系统,提供了多种数据存储方式,包括对象存储。Amazon S3是一个流行的对象存储服务,Ceph提供了Amazon S3接口的兼容性,使得Ceph可以作为一个云存储解决方案。 分片上传接口是Amazon S3接口中的一个重要功能,它允许将大文件拆分成小的分片上传,降低了上

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包