cph*_*ver 13 amazon-web-services terraform atlassian-localstack
Terraform可以配置自定义S3端点,似乎localstack可以为S3,SES,Cloudformation和其他少数服务创建本地堆栈.
问题是在Terraform配置中写什么来使用localstack的S3端点?
Mar*_*ins 13
Terraform并未正式支持"AWS-workalike"系统,因为它们通常与AWS本身存在微妙的怪癖和差异.但是,它是尽力支持的,如果localstack能够为Terraform的目的提供足够逼真的S3印象,则可能会有效.
根据localstack文档,默认情况下会公开S3 API http://localhost:4572,因此以这种方式设置自定义端点可能有效:
provider "aws" {
endpoints {
s3 = "http://localhost:4572"
}
}
Run Code Online (Sandbox Code Playgroud)
根据localstack的功能,您可能需要设置一些其他设置:
s3_force_path_style 为桶和对象使用基于路径的寻址方案.skip_credentials_validation因为localstack似乎缺乏AWS令牌服务的实现.skip_metadata_api_check 如果不使用IAM样式的凭据,则阻止Terraform尝试从EC2元数据API获取凭据.建立@ martin-atkins的答案,这是一个与Localstack一起使用的示例Terraform文件:
provider "aws" {
region = "us-east-1"
access_key = "anaccesskey"
secret_key = "asecretkey"
skip_credentials_validation = true
skip_metadata_api_check = true
s3_force_path_style = true
endpoints {
s3 = "http://localhost:4572"
}
}
resource "aws_s3_bucket" "b" {
bucket = "my-tf-test-bucket"
acl = "public-read"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2950 次 |
| 最近记录: |