3

我正在试验如何在持续交付环境中将 lambdas 部署到不同的 AWS 账户中。目前我被困住了。你能给我一个线索吗?作为 AWS CLI 的示例,我们可以定义我们需要使用的配置文件。

前任:aws s3 ls --profile account2

在 AWS 配置文件中,我们按如下方式定义配置文件。

[default]

aws_access_key_id = XXXXXXXXXXXXXXXXXX

aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

[account2]

aws_access_key_id = XXXXXXXXXXXXXXXXXX

aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我们可以对 zappa 部署使用相同的方法吗?

非常感谢任何解决此问题的线索。

4

2 回答 2

4

有一个选项可以指定个人资料名称,您尝试过吗?

        "profile_name": "your-profile-name", // AWS profile credentials to use. Default 'default'. Removing this setting will use the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables instead.

https://github.com/Miserlou/Zappa/blob/b12bc67aac00b1302a7f9b18444a51f21deac46a/README.md

于 2018-01-09T04:05:45.123 回答
1

您可以使用 Zappa 的设置自行定义要使用的配置文件:

"profile_name": "your-profile-name", // AWS profile credentials to use. Default 'default'. Removing this setting will use the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables instead.

但是在您的 CI 中,您首先必须创建您的 AWS 配置文件,并使用您在 CI 的 Web 界面中设置的环境变量中的配置文件填充它。

CircleCI 中(对 TravisCI 也是如此),我正在为我的个人资料这样做mislavcimpersak

mkdir -p ~/.aws
echo -e "[mislavcimpersak]" >> ~/.aws/credentials
echo -e "aws_access_key_id = "$AWS_ACCESS_KEY_ID >> ~/.aws/credentials
echo -e "aws_secret_access_key = "$AWS_SECRET_ACCESS_KEY >> ~/.aws/credentials

完整的工作CircleCI配置文件可在我的仓库中找到:

https://github.com/mislavcimpersak/xkcd-excuse-generator/blob/master/.circleci/config.yml#L58-L60

并且还完成了工作TravisCI配置文件:

https://github.com/mislavcimpersak/xkcd-excuse-generator/blob/feature/travis-ci/.travis.yml#L25-L29


此外,正如 Zappa 的文档中所说:

删除此设置将改为使用 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量

因此,您可以"profile_name": "default"zappa_settings.jsonAWS_ACCESS_KEY_ID中删除并在AWS_SECRET_ACCESS_KEYCI 的 Web 界面中进行设置。Zappa 应该能够使用这些。

于 2018-01-09T11:58:04.583 回答