如何在中国区域的AWS beanstalk实例上部署美国区域的AWS beanstalk实例

Posted

技术标签:

【中文标题】如何在中国区域的AWS beanstalk实例上部署美国区域的AWS beanstalk实例【英文标题】:How to deploy AWS beanstalk instances in the U.S. region on AWS beanstalk instances in the Chinese region 【发布时间】:2018-11-21 16:59:37 【问题描述】:

一个系统的两种服务存在于AWS中国区和AWS美国区。

根据这个链接:

Deploy AWS Elastic beanstalk to an environment in different region

我尝试在中国的 AWS beanstalk 实例上部署美国的 AWS beanstalk 实例。

我知道中国的 aws_access_key_id 和 aws_secret_access_key 与美国的 aws_access_key_id 和 aws_secret_access_key 不同。

所以我修改了两个文件:/root/.aws/config 和 /root/.aws/credentials

aws_access_key_id =(美国)

aws_secret_access_key =(美国)

然后我使用这个命令:

[root@ip-10-0-0-111 .aws]# eb init --region us-west-1

错误:InvalidParameterValueError - 平台“arn:aws-cn:elasticbeanstalk:cn-north-1::platform/Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.7.7”位于不同的区域。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

在错误本身中,它清楚地表明您正在尝试使用无效的平台值部署应用程序。默认情况下,eb init 将采用当前区域平台,除非您明确指定它。所以它是使用中国区域平台在美国区域部署,这将失败。

如果您比较错误中的 arn 和我在下面提到的一个,它们都有不同的替换。在 AWS 中国区域位于不同的分区中。对于所有其他地区,请使用 aws,对于中国,请使用 aws-cn

使用类似的东西。

eb init --region us-west-1 --platform "arn:aws:elasticbeanstalk:us-west-1::platform/Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.7.7"

有关更多详细信息和 eb 参数选项,请参阅以下文档

eb init

Amazon Resource Name Format for Elastic Beanstalk

【讨论】:

非常感谢!我会试试的

以上是关于如何在中国区域的AWS beanstalk实例上部署美国区域的AWS beanstalk实例的主要内容,如果未能解决你的问题,请参考以下文章

AWS Certificate Manager 证书对控制台中的 AWS Beanstalk 不可见

如何在 aws elastic beanstalk 环境实例启动上运行 shell 脚本

如何将领导者属性设置为 AWS Beanstalk 实例?

AWS - 如何在不丢失实例和弹性 IP 的情况下暂停 Elastic Beanstalk 环境?

AWS - 配置从 Beanstalk 应用程序对 EC2 实例的访问

如何在 AWS Elastic Beanstalk 中更改数据库配置