amazon-web-services - 使用 api 调用结果作为 CloudFormation 资源的参数
问题描述
反正有没有使 CloudFormation 参数动态化?我知道系统管理器参数,但我必须再次手动更改它的值。我想以某种方式在我的 CloudFormation 资源中使用 API 调用或脚本(Bash,python)的结果
例如,作为参数的一部分,运行 API 调用以取回一些数据(任何数据),然后将结果使用/引用到资源中,所有这些都在一个模板中。
解决方案
您可以使用 Cloudformation 自定义资源来实现类似的效果,但有一些注意事项。
作为示例,我们可以使用 AWS CDK,它提供了一个模块来创建自定义资源,甚至还有一个专门设计用于调用 AWS API 并返回结果的包装器:https ://docs.aws.amazon.com/cdk/api/最新的/docs/@aws-cdk_custom-resources.AwsSdkCall.html
一些要记住的事情:
- 自定义资源需要在表单中返回值,
{'PhysicalResourceId': ..., Data: {"MyAttribute": ...}}
以支持使用!GetAtt MyResource.MyAttribute
引用样式 - 与任何其他 CF 资源一样,自定义资源不会在每次更新时触发,只有在资源的参数之一发生更改时才会触发。因此,如果您在创建堆栈时为 API 调用提供了一些参数,除非您更改值,否则不会发生更新,也不会触发 API 调用。
推荐阅读
- python - 项目模块的预提交 pylint 因“E0401:无法导入”而失败
- docker - 如何在 Minikube 中访问 docker-compose 容器
- c++ - 如何在没有 X 服务器或显示的情况下访问 INTEL_performance_query OpenGL 扩展?
- bash - Heroku 没有将正确的参数传递给 Docker 的入口点
- java - 类的返回类型返回什么?
- abap - 如何在 ALV 显示中输入列名
- asp.net-core - Clean Architecture 中 ASP.NET Core 域层中的用户实体
- mql4 - 如何避免 mql4 指标中的数组超出范围错误
- sql-server - 将 CURSOR 转换为 SELECT - 将父表值作为参数发送到连接表返回函数
- javascript - 有没有什么方法可以一起使用 Jest 和 jest-dom 而不必进行编译?