问题描述
我正在尝试为 lambda 设置 localstack 环境,但我无法创建任何资源。我使用了来自 https://github.com/localstack/localstack 的官方指南,但是我在执行 terraform apply 时尝试创建的每个资源都从服务中超时。
下面我包含了尝试创建 s3 存储桶的示例 docker-compose 和 main.tf 文件。我还尝试从一些 github 存储库运行示例,但我也遇到了超时问题。
通常我认为 localstack 服务是健康的,我可以通过 AWS cli 访问它们。但是我卡住了,不知道问题出在哪里。
通过cli访问s3
aws --endpoint-url=http://localhost:4566 s3api list-buckets
{
"Buckets": [],"Owner": {
"displayName": "webfile","ID": "bcaf1ffd86f41161ca5fb16fd081034f"
}
}
docker-compose.yml
version: '2.1'
services:
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME-localstack_main}"
image: localstack/localstack:latest
network_mode: bridge
ports:
- "4566:4566"
- "4571:4571"
- "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
environment:
- SERVICES=${SERVICES- }
- DEBUG=${DEBUG- }
- data_dir=${data_dir- }
- PORT_WEB_UI=${PORT_WEB_UI- }
- LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR- }
- KInesIS_ERROR_PROBABILITY=${KInesIS_ERROR_PROBABILITY- }
- DOCKER_HOST=unix:///var/run/docker.sock
- HOST_TMP_FOLDER=${TMPDIR}
volumes:
- "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
main.tf
provider "aws" {
region = "us-east-1"
access_key = "123"
secret_key = "xyz"
skip_credentials_validation = true
skip_requesting_account_id = true
skip_Metadata_api_check = true
s3_force_path_style = true
endpoints {
s3 = "http://localhost:4572"
}
}
resource "aws_s3_bucket" "b" {
bucket = "demo-bucket-terraform"
acl = "private"
}
terraform apply
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
terraform will perform the following actions:
# aws_s3_bucket.b will be created
+ resource "aws_s3_bucket" "b" {
+ acceleration_status = (kNown after apply)
+ acl = "public-read"
+ arn = (kNown after apply)
+ bucket = "demo-bucket-terraform"
+ bucket_domain_name = (kNown after apply)
+ bucket_regional_domain_name = (kNown after apply)
+ force_destroy = false
+ hosted_zone_id = (kNown after apply)
+ id = (kNown after apply)
+ region = (kNown after apply)
+ request_payer = (kNown after apply)
+ website_domain = (kNown after apply)
+ website_endpoint = (kNown after apply)
+ versioning {
+ enabled = (kNown after apply)
+ mfa_delete = (kNown after apply)
}
}
Plan: 1 to add,0 to change,0 to destroy.
Do you want to perform these actions?
terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
aws_s3_bucket.b: Creating...
aws_s3_bucket.b: Still creating... [10s elapsed]
aws_s3_bucket.b: Still creating... [20s elapsed]
aws_s3_bucket.b: Still creating... [30s elapsed]
aws_s3_bucket.b: Still creating... [40s elapsed]
aws_s3_bucket.b: Still creating... [50s elapsed]
.
.
.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)