如何解决在我的应用程序代码中使用pulumi输出的最佳方法
我想知道在应用程序代码中使用Pulumi部署结果的最佳方法是什么。举一个具体的例子,假设我的Pulumi堆栈为API网关端点生成了以下URL
[Output]
public Output<string> APIEndpoint { get; set; }
此URL由存储在S3存储桶中的JavaScript代码使用。 JavaScript在构建期间由webpack捆绑在一起,然后在部署过程中也由Pulumi存储到S3存储桶中。
将这个URL传递到前端JavaScript包代码的最佳方法是什么?
解决方法
经过研究,我决定选择this solution。
将部署时间网址注入到如下所示的window对象中
window['runtime-config'] = {
apiUrl: 'http://localhost:8080/api'
}
它被前端应用程序消耗
var value = document.getElementById("my_input").value;
const url = window["runtime-config"].apiUrl;
然后将runtime-config.js文件在部署时覆盖,然后再复制到S3存储桶中
Func<string,Output<string>?> overwriteFiles = fileName => fileName == "runtime-config.js"? url.Apply(x=>$@"window['runtime-config'] = {{apiUrl: '${x}'}}") : null;
var objects = bucket.BucketName.Apply(bucketName => LoadFilesToS3(@"./public",bucketName,overwriteFiles));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。