如何使用 Zappa 在多个 AWS 账户之间切换
How to switch between multiple AWS accounts with Zappa
我正在试验如何在持续交付环境中将 lambda 部署到不同的 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 部署使用相同的方法吗?
非常感谢任何解决此问题的线索。
有一个选项可以指定个人资料名称,你试过了吗?
"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
您可以使用 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 的网络界面中设置的环境变量的配置文件填充它。
在 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 的文档中所说:
Removing this setting will use the AWS_ACCESS_KEY_ID and
AWS_SECRET_ACCESS_KEY environment variables instead
因此您可以从 zappa_settings.json 中删除 "profile_name": "default"
并在 [=47= 中设置 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
] 的网页界面。 Zappa 应该可以使用这些。
我正在试验如何在持续交付环境中将 lambda 部署到不同的 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 部署使用相同的方法吗?
非常感谢任何解决此问题的线索。
有一个选项可以指定个人资料名称,你试过了吗?
"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
您可以使用 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 的网络界面中设置的环境变量的配置文件填充它。
在 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 的文档中所说:
Removing this setting will use the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables instead
因此您可以从 zappa_settings.json 中删除 "profile_name": "default"
并在 [=47= 中设置 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
] 的网页界面。 Zappa 应该可以使用这些。