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","PasswordParam": {
                                "Fn::GetAtt": ["MediaPackageChannel",},{
                            "Url": {
                                "Fn::GetAtt": ["MediaPackageChannel",}
                    ]
                }],

你不能用这个进入数组,因为还有另一个函数可以与 Fn::GetAtt 结合使用来获取内部值。

类似的东西

"Fn::GetAtt": ["MediaPackageChannel","HlsIngest['IngestEndpoints'][0]['Url']"]

这是我的完整模板,很难解释,但基本上我需要将我的 medialive 频道附加到 mediapackage 频道,因为我提到我已经完成了上面的 php 代码 Cloudformation 并没有让这变得容易。

您将看到目标部分的第 39 行,我需要使用媒体包频道创建的返回值填充 URL、用户名、密码参数。

https://gist.github.com/samueleastdev/03b050f937855a81f36bb1e3260aa5d3

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...