【问题标题】:EC2 Pass Environment Variables Via "runInstance" to Docker without overriding UserDataEC2 通过“runInstance”将环境变量传递给 Docker,而不覆盖 UserData
【发布时间】:2021-05-19 02:36:28
【问题描述】:
我有一个启动模板 (CloudFormation) 和一个使用 SDK 的 Java 应用程序。启动模板包括用于检索和启动 Docker 容器的 UserData,但该容器需要一些环境变量。这些我计划与来自 Java SDK 的 runInstanceRequest 一起发送,但不能使用 UserData 进行传输。关于如何解决这种情况的任何想法?
【问题讨论】:
标签:
amazon-web-services
docker
amazon-ec2
environment-variables
【解决方案1】:
我不知道这是否是最好的解决方案,但至少是一个(我认为)
GetLaunchTemplateDataRequest.Builder userDataRequest = GetLaunchTemplateDataRequest.builder();
userDataRequest.instanceId(getTemplateArnOf(type));
GetLaunchTemplateDataResponse userDataResponse = EC2_CLIENT.getLaunchTemplateData(userDataRequest.build());
String userData = userDataResponse.launchTemplateData().userData();
然后修改 userData 以合并环境变量并添加到RunInstanceRequest