如何从 aws-sdk 中的 s3 存储桶创建 Elastic Beanstalk 实例?
Posted
技术标签:
【中文标题】如何从 aws-sdk 中的 s3 存储桶创建 Elastic Beanstalk 实例?【英文标题】:How to create Elastic Beanstalk instance from s3 bucket in the aws-sdk? 【发布时间】:2021-09-21 19:01:47 【问题描述】:我正在尝试从 aws javascript sdk 部署一个弹性 beanstalk 实例,并希望代码源来自 s3 存储桶。我可以看到您可以通过网络界面执行此操作,但无法通过 sdk 解决。
到目前为止,我已经创建了一个新环境(此时应用程序已经存在),但该环境没有要运行的源代码。
const elasticBeanstalkClient = new ElasticBeanstalkClient(
region: "eu-west-2",
credentials:
accessKeyId: awsAccessKeyId,
secretAccessKey: awsAccessKeySecret
);
const createEnvironmentCommand = new CreateEnvironmentCommand(
ApplicationName: applicationName,
EnvironmentName: environmentName,
SolutionStackName: "64bit Amazon Linux 2 v5.4.2 running Node.js 14",
VersionLabel: versionLabel
)
return elasticBeanstalkClient.send(createEnvironmentCommand);
CreateEnvironmentCommand
似乎没有我可以看到的源值。我应该如何告诉环境是从 s3 源创建的?
【问题讨论】:
【参考方案1】:我可以看到您可以通过网络界面执行此操作,但无法通过 sdk 解决。
EB 控制台在后台做了很多事情,让您看起来可以做到。使用 CDK,您必须自己做所有事情。这意味着您必须先createApplicationVersion。执行此操作时,您可以指定 S3 位置。
【讨论】:
谢谢,这真的很有帮助。所以我必须先调用 CreateEnvironmentCommand,然后再调用 createApplicationVersion?你知道我是否必须调用另一种方法来将应用程序链接到该环境,或者我是否需要通过将一些值传递给createApplicationVersion
来做到这一点?
@Stretch0 创建CreateApplicationVersionRequest
时,指定versionLabel
。然后在您的CreateEnvironmentCommand
中您可以引用标签。
完美,成功了。感谢您的帮助@Marcin以上是关于如何从 aws-sdk 中的 s3 存储桶创建 Elastic Beanstalk 实例?的主要内容,如果未能解决你的问题,请参考以下文章
Ruby v2 的 aws-sdk:在我将对象放入 S3 存储桶后检查成功状态
如何从 Elastic Beanstalk 实例访问 S3 存储桶中的 docker 配置文件