希望你做得很好。我正在使用Go編寫一個API,其工作方式類似于地形提供程序協議因此,我已經有兩個端點通過HTTPS在我的本地計算機上工作:https://myapi:9000/v1/provider/:namespace/:type/versionshttps://myapi:9000/v1/provider/:namespace/:type/:version/download/:os/:arch例如,假設這些完整的端點:https://myapi:9000/v1/provider/myprovider/custom/versionshttps://myapi:9000/v1/provider/myprovider/custom/0.1.0/download/linux/amd64所以我有下一個.tf.json文件:{ "module": { "linux": { "source": "myapi:9000/v1/module/mymodule/custom", "version": "0.1.2" } }}使用這兩個文件provider.tf.jsonprovider "mycustomprovider" { username = "abc" password = "def" host = "yjk"}versions.tf.jsonterraform { required_providers { mycustomprovider = { source: "myapi:9000/v1/myprovider/custom", version: "0.1.0" } } required_version = ">=1.0.2"}然后我只需運行:獲取我的資產。terraform init因此,當我獲得自定義模塊時,工作正常。輸出(模塊下載):Initializing modules...Downloading myapi:9000/mymodule/custom/gnu 0.1.2 for linux...- linux in .terraform/modules/linuxInitializing the backend...但是當我得到我的證明時,我有這個錯誤:Initializing provider plugins...- Finding myapi:9000:9000/myprovider/custom versions matching "0.1.0"...- Installing myapi:9000:9000/myprovider/custom v0.1.0...?│ Error: Failed to install provider│ │ Error while installing myapi:9000/myprovider/custom v0.1.0: error checking signature:│ openpgp: invalid data: tag byte does not have MSB set因此,我的提供者終結點正在工作。這就是為什么terraform能夠識別我的提供者的版本。versions問題應該出在我的終結點上。download在談論這個終端節點之前,我想添加一些上下文,我正在使用本地堆棧運行S3客戶端并通過ngrok公開它。這兩件事有效,我能夠毫無問題地上傳或下載文件。泰拉form自定義提供程序應該有三個文件(據我所知):zip 格式的提供程序(如其示例中所示)一個包含每個提供者zip文件的陰影的文件(在這種情況下,我只有一個)provider_SHA256SUMS用于識別文件的完整性。provider_SHA256SUMS.sigprovider_SHA256SUMS
1 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
x/crypto/openpgp
terraform使用不支持讀取裝甲消息,請參閱問題,這是錯誤的來源。
shasums_signature_url
提交的文檔提及:
二進制、分離的 GPG 簽名
另請參閱手動準備發布文檔
這是有效的 GPG 二進制(非 ASCII 裝甲)簽名
因此,您應該嘗試在沒有標志的情況下簽名。--armor
- 1 回答
- 0 關注
- 92 瀏覽
添加回答
舉報
0/150
提交
取消