在 Jenkins 上 运行 时 Terraform 卡住了

Terraform getting stuck when running on Jenkins

我正在将 terraform 与 aws 结合使用:

当前行为:

2021-08-24T20:16:08.901Z [INFO] plugin.terraform-provider-aws_v3.55.0_x5: 2021/08/24 20:16:08 [DEBUG] [aws-sdk-go] DEBUG: Send Request lambda/GetLayerVersion failed, attempt 25/25, error RequestError: send request failed caused by: Get "https://lambda.eu-central-1.amazonaws.com/2018-10-31/layers/awswrangler/versions/2": dial tcp 3.121.178.128:443: i/o timeout: timestamp=2021-08-24T20:16:08.901Z 2021/08/24 20:16:08 [TRACE] vertex "module.key_rotation.aws_lambda_layer_version.lambda_layer": visit complete 2021/08/24 20:16:08 [TRACE] vertex "module.key_rotation.aws_lambda_layer_version.lambda_layer": dynamic subgraph encountered errors 2021/08/24 20:16:08 [TRACE] vertex "module.key_rotation.aws_lambda_layer_version.lambda_layer": visit complete 2021/08/24 20:16:08 [TRACE] vertex "module.key_rotation.aws_lambda_layer_version.lambda_layer (expand)": dynamic subgraph encountered errors 2021/08/24 20:16:08 [TRACE] vertex "module.key_rotation.aws_lambda_layer_version.lambda_layer (expand)": visit complete 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation.aws_lambda_function.sync_apps_db_lambda_function (expand)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation.aws_lambda_function.cleanup_lambda_function (expand)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation.aws_lambda_function.check_application_keys_lambda_function (expand)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation.aws_cloudwatch_event_target.event_target_lambda (expand)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation.aws_lambda_permission.allow_cloudwatch_to_call_cleaner_lambda (expand)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation.aws_lambda_permission.allow_cloudwatch_to_call_lambda (expand)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation.aws_cloudwatch_event_target.event_target_cleaner_lambda (expand)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "module.key_rotation (close)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "provider["registry.terraform.io/hashicorp/aws"] (close)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "meta.count-boundary (EachMode fixup)" errored, so skipping 2021/08/24 20:16:08 [TRACE] dag/walk: upstream of "root" errored, so skipping

好像和lambda上传有关。

我试过:

同样的结果。

我认为您的问题的根本原因是:

Get "https://lambda.eu-central-1.amazonaws.com/2018-10-31/layers/awswrangler/versions/2": dial tcp 3.121.178.128:443: i/o timeout

为什么 terraform 二进制文件无法连接到 Lambda 服务的 eu-central-1 端点,根据您提供的信息无法解释。

您没有说明 Jenkins 的部署位置或方式。我假设在 AWS 上的某个容器中?

这可能是暂时的网络故障,或者由于某种原因,您的 Jenkins 部署阻止了与 eu-central-1 的连接。

几个小时后你重试了吗?

您能否始终如一地重现此行为?

找到问题了。

如其他回复所述,问题是:

Get "https://lambda.eu-central-1.amazonaws.com/2018-10-31/layers/awswrangler/versions/2": dial tcp 3.121.178.128:443: i/o timeout

原因是我们的代理上缺少 lambda 域。