![在 CloudFormation 模板中从 GitHub 下载单个文件](https://linux22.com/image/797621/%E5%9C%A8%20CloudFormation%20%E6%A8%A1%E6%9D%BF%E4%B8%AD%E4%BB%8E%20GitHub%20%E4%B8%8B%E8%BD%BD%E5%8D%95%E4%B8%AA%E6%96%87%E4%BB%B6.png)
在我的 CloudFormation 模板中,我想从 GitHub 下载文本文件。当我检查下载的文件时,发现它是编码/加密的内容,而不是纯文本。这似乎无关紧要,但我在公共和私有存储库中都有文件。
下面是我的 CloudFormation 模板中下载文件的代码:
"AWS::CloudFormation::Authentication" : {
"GithubAccessCredentials" : {
"type" : "basic",
"username" : { "Ref" : "GitHubLogin" },
"password" : { "Ref" : "GitHubPassword" },
}
},
"AWS::CloudFormation::Init" : {
"configSets" : {
"orderedConfig" : [ "yumRepoConfig", "mainConfig" ]
},
"yumRepoConfig" : {
"files" : {
"/etc/yum.repos.d/puppetlabs.repo" : {
"source" : "https://github.com/MyOrganization/Repo/raw/master/provisioning/yum-repo/puppetlabs.repo",
"mode" : "000644",
"owner" : "root",
"group" : "root",
"authentication" : "GithubAccessCredentials"
},
"/tmp/README" : {
"source" : "https://github.com/puppetlabs/puppetlabs-apache/raw/master/README.md",
"mode" : "000644",
"owner" : "root",
"group" : "root"
}
}
},
[...]
我可以使用 curl 正确下载文件:
- 对于私人回购
curl -u'myGithubLogin'-L -O https://github.com/MyOrganization/Repo/raw/master/provisioning/yum-repo/puppetlabs.repo
- 对于公共仓库:
卷曲-L-O https://github.com/puppetlabs/puppetlabs-apache/raw/master/README.md
下载文件的有效副本需要什么?此外,cloudFormation 实际上使用什么命令来下载文件(curl、wget 等)?
答案1
cfn-init 存在问题,导致无法正确扩展使用 Content-Encoding: gzip 发送的下载。升级到 cfn-init 的最新版本可修复此问题。
请参阅此主题:https://forums.aws.amazon.com/thread.jspa?threadID=111736&tstart=0