开发者社区> 问答> 正文

资源编排ROS中我想其中一些值来自界面配置,一些值来自ALIYUN有什么思路吗?

资源编排ROS中FC这个资源有个参数叫EnvVar,这是一个Map;我想其中一些值来自界面配置,一些值来自ALIYUN:OOS:Parameter,有什么思路吗?比如有没有Fn:mergeMap

展开
收起
三分钟热度的鱼 2023-06-28 14:03:53 44 0
2 条回答
写回答
取消 提交回答
  • 参考:https://help.aliyun.com/document_detail/28865.html?spm=a2c4g.750001.0.i1#section-7f0-bwu-4mi此回答整理自钉群“资源编排ROS客户支持群”

    2023-06-28 16:21:00
    赞同 展开评论 打赏
  • 在ROS(资源编排服务)中,确实没有直接提供类似Fn:mergeMap的内置函数来合并Map。但是,您可以通过使用Fn::Select和Fn::GetAtt等内置函数来实现类似的功能。以下是一种可能的思路:

    1. 定义一个Map,其中包含来自界面配置的键值对和来自ALIYUN:OOS:Parameter的键值对。

    2. 对于来自界面配置的键值对,直接将其添加到Map中。

    3. 对于来自ALIYUN:OOS:Parameter的键值对,您可以使用Fn::Select和Fn::GetAtt函数来获取它们的值。

      • 使用Fn::Select函数选择需要的参数值,其中第一个参数是要选择的参数索引,第二个参数是参数列表。

      • 使用Fn::GetAtt函数获取ALIYUN:OOS:Parameter资源的属性值,其中第一个参数是资源名称,第二个参数是属性名称。

    下面是一个示例模板片段,展示了如何实现上述思路:

    Resources:
      MyFunctionCompute:
        Type: 'ALIYUN::FC::Function'
        Properties:
          CodeUri: 'oss://my-bucket/my-function.zip'
          EnvironmentVariables:
            Fn::MergeMap:
              - !Ref InterfaceConfigMap
              - Fn::Select:
                  - 0
                  - Fn::GetAtt:
                      - OosParameter
                      - Outputs.Parameters
                      
      InterfaceConfigMap:
        Type: 'ALIYUN::ROS::Parameter'
        Properties:
          Value:
            key1: value1
            key2: value2
    
      OosParameter:
        Type: 'ALIYUN::OOS::Parameter'
        Properties:
          Description: 'Parameter from OOS'
          Value: 'Parameter value from OOS'
    
    Outputs:
      MyFunctionOutput:
        Value: !GetAtt MyFunctionCompute.Arn
    

    在上面的示例中,我们使用了Fn::MergeMap函数来合并InterfaceConfigMap和OosParameter中的键值对,然后将合并后的Map作为环境变量传递给函数计算资源。

    2023-06-28 15:34:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关镜像