-1

我第一次尝试通过 AWS Codebuild 初始化我的后端。到目前为止,我已经能够运行初始部署。一旦 Terraform 应用完成,我会尝试初始化后端并将其移动到 S3。这是在目录中使用活动状态文件运行的代码后应用:

构建规范部分

- |
    echo "" >> main.tf
    echo "" >> main.tf
    echo "terraform { " >> main.tf
    echo "   backend \"s3\" { " >> main.tf
    echo "  }" >> main.tf
    echo "}" >> main.tf
    echo "yes" | terraform init \
      -backend-config="bucket=${backend_env}" \ 
      -backend-config="key=global/state/${bucketconfig}/terraform.tfstate" \
      -backend-config="region=us-east-1" \
      -backend-config="encrypt=true" \
      -backend-config="kms_key_id=${kmykeyid}" \
      -backend-config="dynamodb_table=iha-${tf_appenv}-${tf_tenant}-db-${bucketconfig}"
- echo "Complete"

现在请注意,在我添加后端配置之前,一切都已正常运行。您还注意到,我尝试动态添加有效的 s3 资源。通过运行 cat main.tf 我可以看到 s3 后端资源已添加到文件中。

terraform {
  backend "s3" {

  }
}

我已经验证了所有变量并确保所有存储桶和资源都存在。我不知道为什么它失败了。还要注意您在构建规范文件中看到的示例代码及其在多行部分中。

我不确定是什么导致命令行 CLI 出现问题,我正在寻找任何人指出我正确的方向。

4

1 回答 1

0

在尝试了一些事情之后,我得到了这个版本的工作。

echo "yes" | terraform init -backend-config="bucket=${backend_env}" -backend-config="key=global/s3/state/${bucketconfig}/terraform.tfstate" -backend-config="region=us-east-1" -backend-config="encrypt=true" -backend-config="kms_key_id=${kmskeyid}" -backend-config="dynamodb_table=iha-${tf_appenv}-${tf_tenant}-db-${bucketconfig}"

我的问题是后端不会初始化。我确实相信其他语法有效,但我可能错误地发送它。这就是说这行得通。感谢其他试图帮助解决此问题的人的帮助。

于 2022-02-11T00:02:48.593 回答