amazon-cloudformation - AWS MediaLive Cloudformation Fn::GetAtt 获取数组值
问题描述
我正在为 Media Live 构建 Cloudformation 模板,我可以使用AWS PHP SDK进行所有工作。我创建了一个通道并返回要在下一次调用中使用的通道数据。
返回示例。
(
[Arn] => arn:aws:mediapackage:us-east-1:000000000000:channels/000000000000
[Description] => Tests
[HlsIngest] => Array
(
[IngestEndpoints] => Array
(
[0] => Array
(
[Id] => 000000000000
[Password] => 000000000000
[Url] => https://000000000000.mediapackage.us-east-1.amazonaws.com/in/v2/1e803c424d2947f58c07d9a6a5ff3d31/000000000000/channel
[Username] => 000000000000
)
[1] => Array
(
[Id] => 000000000000
[Password] => 000000000000
[Url] => https://2bcff136c2fbf1e5.mediapackage.us-east-1.amazonaws.com/in/v2/000000000000/10392b8387fd442eae56f29ac2656837/channel
[Username] => 000000000000
)
)
)
[Id] => sdv
[Tags] => Array
(
)
)
然后我可以像这样在 PHP 中使用这些值。
$destinationOneUrl = $createChannel['HlsIngest']['IngestEndpoints'][0]['Url'];
哪个有效,但对于 Cloudformation,您必须像这样使用 Fn::GetAtt。
"Destinations": [{
"Id": "destination1",
"Settings": [{
"Url": {
"Fn::GetAtt": ["MediaPackageChannel", "HlsIngest"]
},
"Username": {
"Fn::GetAtt": ["MediaPackageChannel", "HlsIngest"]
},
"PasswordParam": {
"Fn::GetAtt": ["MediaPackageChannel", "HlsIngest"]
},
},
{
"Url": {
"Fn::GetAtt": ["MediaPackageChannel", "HlsIngest"]
},
"Username": {
"Fn::GetAtt": ["MediaPackageChannel", "HlsIngest"]
},
"PasswordParam": {
"Fn::GetAtt": ["MediaPackageChannel", "HlsIngest"]
},
}
]
}],
你不能用这个进入数组,还有另一个函数可以与 Fn::GetAtt 结合使用来获取内部值。
沿着这些思路
"Fn::GetAtt": ["MediaPackageChannel", "HlsIngest['IngestEndpoints'][0]['Url']"]
这是我的完整模板,很难解释,但基本上我需要将我的 medialive 频道附加到 mediapackage 频道,正如我提到的那样,我已经使用 Cloudformation 上面的 php 代码完成了这件事并不容易。
您将看到 Destinations 部分的第 39 行,我需要使用来自 mediapackage 通道创建的返回值填充 Url、Username、PasswordParam。
https://gist.github.com/samueleastdev/03b050f937855a81f36bb1e3260aa5d3
解决方案
推荐阅读
- reactjs - 删除 React 中的对象实例:“汽车”返回未定义
- python - 在 seaborn barplot 顶部显示计数
- mysql - 如何修复损坏的 MySQL 安装?
- python - 如果 Python 编写的脚本可以在标准 Spark 中启动,我们为什么需要 PySpark?
- javascript - 根据我的引导轮播的位置设置文本
- javascript - 如何制作一个在单击按钮一定次数时执行的功能?
- bash - BASH 脚本中的 gzip 可以在文件完全解压缩之前给出退出状态吗?如何防止这种情况?
- javascript - Ember 3 计算属性
- microsoft-graph-api - 权限不足,无法完成操作 - Graph API
- java - OOP 创建设计模式