尝试在 localstack 上创建任何 terraform 资源时超时

问题描述

我正在尝试为 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"

ma​​in.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 (将#修改为@)