Terraform-如何在';地形应用';命令已运行
我正在使用Terraform脚本在AWS上提供AWS资源。这是剧本。 要运行这个脚本,我需要打开我们的域和AWS之间的防火墙。我如何知道该脚本在AWS上访问哪个url来提供资源?我希望在TerraformApply命令的输出中看到这个URL Terraform应用-运行此脚本Terraform-如何在';地形应用';命令已运行,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我正在使用Terraform脚本在AWS上提供AWS资源。这是剧本。 要运行这个脚本,我需要打开我们的域和AWS之间的防火墙。我如何知道该脚本在AWS上访问哪个url来提供资源?我希望在TerraformApply命令的输出中看到这个URL Terraform应用-运行此脚本 provider "aws" { region = "us-east-2" access_key = "validaccessk
provider "aws" {
region = "us-east-2"
access_key = "validaccesskey"
secret_key = "validsecretkey"
max_retries = 1
}
resource "aws_vpc" "AWS_VPC"{
cidr_block = "10.0.0.0/16"
tags = {
Name = "Main VPC"
}
}
resource "aws_instance" "my_web_server" {
ami = "ami-00843a337042b9b8b"
instance_type = "t2.micro"
tags = {
Name="DEV server"
}
}
指定环境变量
TF_LOG=TRACE
:。这样将生成大量日志,URL将在其中可见
您可能需要将基本上任何东西或多个service.amazonaws.com
列入白名单
例如,为了
resource "aws_sns_topic" "topic" { name = "testing" }
运行terraforminit
之后,我们可以运行
AWS_ACCESS_KEY_ID="asd" AWS_SECRET_ACCESS_KEY="test" TF_LOG=TRACE terraform apply
并查看有一个对sts.amazonaws.com的请求:
2021-03-16T16:33:17.417+0100 [INFO] plugin.terraform-provider-aws_v3.32.0_x5: 2021/03/16 16:33:17 [DEBUG] [aws-sdk-go] DEBUG: Request sts/GetCallerIdentity Details:
---[ REQUEST POST-SIGN ]-----------------------------
POST / HTTP/1.1
Host: sts.amazonaws.com
User-Agent: aws-sdk-go/1.37.24 (go1.16; darwin; amd64) APN/1.0 HashiCorp/1.0 Terraform/0.14.8 (+https://www.terraform.io) terraform-provider-aws/dev (+https://registry.terraform.io/providers/hashicorp/aws)
Content-Length: 43
Authorization: AWS4-HMAC-SHA256 Credential=asd/20210316/us-east-1/sts/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=d1215314fb3271dc87ca655071b179cad44c73c882bddb6a0e2bbef91514a00e
Content-Type: application/x-www-form-urlencoded; charset=utf-8
X-Amz-Date: 20210316T153317Z
Accept-Encoding: gzip
Action=GetCallerIdentity&Version=2011-06-15
-----------------------------------------------------: timestamp=2021-03-16T16:33:17.417+0100
可以围绕URL定义输出变量:
这样,在您运行
terraform apply
之后,输出值将在最后显示,如果您希望将来切换该值,您可以只运行terraform output[options][NAME]
这有助于了解terraform在部署基础设施时与哪些服务/URL对话?这是基于URL存储在terraform应用
后生成的文件中的某个位置的假设。如果不是这样的话,上述方法就行不通了。非常感谢你所有的建议,