我正在嘗試為 terraform 更改設定 CICD。我們支持的是 S3,雖然init我得到以下錯誤,因為當然沒有提供這些值:
terraform {
backend "s3" {
}
}
.
│ Error: "region": required field is not set
│ Error: "bucket": required field is not set
│ Error: "key": required field is not set
此處region指定的值 可以來自環境變數。AWS_DEFAULT_REGIONAWS_REGION
bucket但是,沒有關于如何key將資訊存盤為存盤庫機密或環境變數以及可以從那里獲取資訊的資訊?
backend.tf由于其他一些限制,我無法在檔案中指定它們,并且必須將它們存盤為環境變數。知道如何解決這個問題嗎?
uj5u.com熱心網友回復:
backend可以使用命令列選項 [1] 配置塊的所有必需值。具體來說,您應該對這部分感興趣:
命令列鍵/值對:可以通過 init 命令列指定鍵/值對。請注意,許多 shell 在歷史檔案中保留命令列標志,因此不建議將其用于機密。要指定單個鍵/值對,請在運行 terraform init 時使用 -backend-config="KEY=VALUE" 選項。
這是我使用的 GitHub 操作的示例:
terraform init -backend-config="bucket=${{ secrets.STATE_BUCKET_NAME }}" \
-backend-config="key=${{ secrets.STATE_KEY }}" \
-backend-config="region=${{ secrets.AWS_REGION }}" \
-backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID }}" \
-backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY }}" \
-input=false -no-color
我對 GitLab CI 沒有太多經驗,但我認為您可以將這些變數設定為受保護的,然后在命令中參考它們:
terraform init -backend-config="bucket=${STATE_BUCKET_NAME}" \
-backend-config="key=${STATE_KEY}" \
-backend-config="region=${AWS_REGION}" \
-backend-config="access_key=${AWS_ACCESS_KEY_ID}" \
-backend-config="secret_key=${AWS_SECRET_ACCESS_KEY}" \
-input=false -no-color
[1] https://www.terraform.io/language/settings/backends/configuration
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/428681.html
上一篇:Node.jsAWSLambda Archiverlib-創建壓縮檔案時出錯
下一篇:是否有類似getSubTransfersforMultipleFileDownload的功能?AWSJava開發工具包
