在 CloudFormation 模板中从 GitHub 下载单个文件

在 CloudFormation 模板中从 GitHub 下载单个文件

在我的 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

相关内容