gpt4 book ai didi

amazon-web-services - 用于将现有 AWS 资源列为 Hello World 的 Terraform 命令

转载 作者:行者123 更新时间:2023-12-04 01:43:12 24 4
gpt4 key购买 nike

我在我的 Windows 计算机上安装了 AWS CLI,并且运行此命令“有效”,就像我想要的那样。

aws ec2 describe-images

我得到以下输出,这正是我想要看到的,因为虽然我可以通过我的公司访问 AWS(例如,将代码检查到 CodeCommit),但我可以在 EC2 的 AWS Web 控制台中看到我不'有权列出正在运行的实例:

An error occurred (UnauthorizedOperation) when calling the DescribeImages operation: You are not authorized to perform this operation.

我也将 terraform.exe 放到了我的电脑上,并创建了一个包含以下内容的文件“example.tf”:

provider "aws" {
region = "us-east-1"
}

我想发出某种 Terraform 命令,它会冲我大喊大叫,解释说我的 AWS 账户不允许列出 Amazon 实例。

大多数 Hello World 示例涉及使用 terraform planresource 进行“几乎写入”针对 AWS。

但是,就我个人而言,我总是觉得知道事情按预期运行更“真正只读”一点让我感到更自在。这样,我真的知道到 AWS 的往返行程有效,但我没有修改我公司的任何状态。

互联网上有很多关于“数据源”及其“aws_ami”或“aws_instances”风格的内容,但我找不到任何内容告诉我如何实际使用它用于简单 print() 类型交互的 Terraform 命令(很明显,比如说,“资源”与“terraform plan”和“terraform apply”命令一起使用).

我可以使用 Terraform 命令做些什么来“hello world”,尝试列出我组织的所有 EC2 服务器,并相应地观察 AWS 告诉我因为我未获得授权而停止工作?

最佳答案

您可以使用 data source for AWS instances 。您创建一个类似于以下内容的 data 源:

data "aws_instances" "test" {
instance_tags = {
Role = "HardWorker"
}

filter {
name = "instance.group-id"
values = ["sg-12345678"]
}

instance_state_names = ["running", "stopped"]
}

这将尝试执行读取操作,列出您在配置中放置的过滤器指定的 EC2 实例。这还将利用与您正在执行 terraform plan 的 Terraform 用户关联的 IAM。这将导致您描述的关于缺乏授权的错误,这是您声明的目标。您应该修改 filter 以针对您组织的 EC2 实例。

关于amazon-web-services - 用于将现有 AWS 资源列为 Hello World 的 Terraform 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56530177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com