iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >如何解组 Pulumi auto.Result 对象结构或映射
  • 328
分享到

如何解组 Pulumi auto.Result 对象结构或映射

2024-02-10 12:02:37 328人浏览 薄情痞子
摘要

PHP小编西瓜分享如何解组 Pulumi auto.Result 对象结构或映射。Pulumi 是一个跨云平台的基础设施即代码工具,它允许开发人员使用编程语言来定义和管理云基础设施。在

PHP小编西瓜分享如何解组 Pulumi auto.Result 对象结构或映射。Pulumi 是一个跨云平台的基础设施即代码工具,它允许开发人员使用编程语言来定义和管理云基础设施。在使用 Pulumi 进行开发时,经常会遇到 auto.Result 对象,它通常包含多个属性和嵌套结构。本文将介绍如何解组 Result 对象,以及如何映射到一个更易于使用的数据结构,以便更方便地处理和操作数据。

问题内容

我正在 Go 中使用 pulumi 的自动化 api服务器部署到 hetzner,但不知道如何从部署结果中获取生成的连接信息。

这是截断的代码:

import (
    ...

    "GitHub.com/pulumi/pulumi-command/sdk/go/command/remote"
    "github.com/pulumi/pulumi/sdk/v3/go/auto"
    "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

...

deployfunc := func(ctx *pulumi.context) error {
        // create ssh key pair, upload them to hetzner, get back a `*hcloud.sshkey`
        ...
        
        // `server` is a *hcloud.server object
        server, _ := deployservertohetzner(ctx, sshkey)

        // this is the info i want to retrieve from the result
        connectinfo := remote.connectionargs{
            host:       server.ipv4address,
            port:       pulumi.float64(22),
            user:       pulumi.string("root"),
            privatekey: sshkeypair.private,
        }

        ctx.export("server-connect-info", connectinfo)

        return nil
    }

stack, _ := auto.upsertstackinlinesource(ctx, stackname, projectname, deployfunc, opts...)

res, _ := stack.up(ctx)

// this is a string but i need it as either map or struct
serverconnectinfo := fmt.sprintf("%v", res.outputs["server-connect-info"].value)

我能够从 res.outputs 检索结果,但它是一个字符串。我知道服务器部署和带有连接详细信息的响应是成功的,因为当我登录 serverconnectinfo 时,它看起来像这样:

serverconnectinfo map[host:123.456.789.10 port:22 privatekey:-----begin openssh private key-----
b3blbnnza...
-----end openssh private key-----
user:root]

基于网上一些可疑的解决方案,我尝试像 JSON 一样对其进行编组,然后将其解组到 pulumi remote.connectionargs 实例中。这显然不起作用,因为结构如下所示:

// From https://pkg.go.dev/github.com/pulumi/pulumi-command/[email protected]/go/command/remote#ConnectionArgs

type ConnectionArgs struct {
    ...
    Host pulumi.StringInput `pulumi:"host"`
    Port pulumi.Float64PtrInput `pulumi:"port"`
    PrivateKey pulumi.StringPtrInput `pulumi:"privateKey"`
    User pulumi.StringPtrInput `pulumi:"user"`
}

我正在考虑构建自己的结构,然后重试 json 解组和编组解决方案,但似乎如果 connectionargs 结构已经具有 pulumi 标签,则应该在某处存在某种 pulumi.unmarshal 方法。我错了吗?反正我没找到。

我也查看了文档,但没有看到任何有帮助的内容。也许我漏掉了一页?

解决方法

正如 peter 在评论中指出的那样, res.outputs["server-connect-info"].value 是一个映射,并且正确地猜测我通过 fmt.sprintf 运行它。我真是太傻了。

这有效:

serverconnectinfo := res.outputs["server-connect-info"].value.(map[string]interface{})

使用内置测试包在 go 测试中也能很好地工作:

assert.NotEmpty(t, serverConnectInfo["host"])
assert.Equal(t, serverConnectInfo["user"], "root")

以上就是如何解组 Pulumi auto.Result 对象结构或映射的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何解组 Pulumi auto.Result 对象结构或映射

本文链接: https://www.lsjlt.com/news/563061.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解组 Pulumi auto.Result 对象结构或映射
    php小编西瓜分享如何解组 Pulumi auto.Result 对象结构或映射。Pulumi 是一个跨云平台的基础设施即代码工具,它允许开发人员使用编程语言来定义和管理云基础设施。在...
    99+
    2024-02-10
  • 如何使用对象到对象映射AutoMapper
    本篇内容主要讲解“如何使用对象到对象映射AutoMapper”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用对象到对象映射AutoMapper”吧!入门A...
    99+
    2024-04-02
  • 解组 yaml 将 dict 键映射到结构属性
    php小编西瓜今天为大家介绍一种非常有用的技巧——将 YAML 解组为字典,并将键映射到结构属性。YAML 是一种轻量级的数据序列化格式,常用于配置文件和数据交换。通过解组 YAML,...
    99+
    2024-02-09
  • jQuery中如何将$引用的对象映射回原始的对象
    本文小编为大家详细介绍“jQuery中如何将$引用的对象映射回原始的对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“jQuery中如何将$引用的对象映射回原始的对象”文章能帮助大家解决疑惑,下面跟着小编...
    99+
    2024-04-02
  • 如何配置ABP框架使用对象映射
    小编给大家分享一下如何配置ABP框架使用对象映射,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!DTO和实体实体实体是领域驱动设计(Domain Driven De...
    99+
    2023-06-29
  • python如何实现对象到唯一计数的映射
    这篇文章主要介绍了python如何实现对象到唯一计数的映射,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对象到唯一计数的映射>>...
    99+
    2024-04-02
  • PHP中如何使用多个数组构建键值映射
    在PHP中,可以使用array_combine()函数将多个数组组合成一个键值映射数组。以下是一个示例: // 定义多个数组 $ke...
    99+
    2024-04-02
  • 如何将 json 解组为结构体而不映射所有元素,同时保留所有信息
    问题内容 我从队列中收到一个 JSON 对象。我想处理该对象的部分内容并在发送到另一个队列之前更新它。 如果我有一个输入 { "one": "data1", "two": "d...
    99+
    2024-02-05
  • php中json值如何转为数组或对象
    这篇文章主要讲解了“php中json值如何转为数组或对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中json值如何转为数组或对象”吧!在php中,可使用json_decode()将...
    99+
    2023-06-30
  • Java 中组合模型之对象结构模式的详解
    Java 中组合模型之对象结构模式的详解一、意图 将对象组合成树形结构以表示”部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 二、适用性你想表示对象的部分-整体层次结构你希望用户忽略组合对象与单个对...
    99+
    2023-05-31
    java 组合模型 ava
  • 如何将JavaScript中数据结构的数组与对象进行比较
    本篇文章给大家分享的是有关如何将JavaScript中数据结构的数组与对象进行比较,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在编程中,如果...
    99+
    2024-04-02
  • php如何解析数组对象
    这篇文章主要介绍“php如何解析数组对象”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何解析数组对象”文章能帮助大家解决问题。PHP是一种流行的服务器端编程语言,常被用于构建Web应用程序和...
    99+
    2023-07-06
  • 如何使用 ORM(对象关系映射)简化 PHP 数据库连接?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-21
  • Java如何将String转换成json对象或json数组
    目录将String转换成json对象或json数组字符串转json数组的解决首先导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个j...
    99+
    2024-04-02
  • PHP 对象关系映射与数据库抽象层如何提高代码可读性
    答案: orm(对象关系映射)和 dal(数据库抽象层)通过抽象底层数据库实现细节,提高代码可读性。详细描述:orm 使用面向对象方式与数据库交互,使代码更接近应用程序逻辑。dal 提供...
    99+
    2024-05-06
    orm 数据库抽象层 代码可读性
  • Go语言同步等待组sync.WaitGroup结构体对象方法详解
    目录sync.WaitGroup结构体对象WaitGroup的结构体Add()方法Done()方法Wait()方法Add()、Done()、Wait()三者对比sync.WaitGr...
    99+
    2024-04-02
  • PHP中如何使用对象-关系映射(ORM)简化数据库操作?
    使用 orm 可简化 php 中的数据库操作,它将对象映射到关系数据库中。laravel 中的 eloquent orm 允许使用面向对象的语法与数据库交互,可通过定义模型类、使用 el...
    99+
    2024-05-07
    php orm laravel 博客系统
  • C++如何计算结构体与对象的大小
    如何计算结构体的大小 其实计算一个结构的大小的方法并不难,简单来说就是把结构体内的所有成员的大小相加就可以。但是,需要内存对齐那么究竟什么是内存对齐,又为什么要进行类型对齐呢? 结构...
    99+
    2024-04-02
  • 如何解决Vue不能检测数组或对象变动的问题
    小编给大家分享一下如何解决Vue不能检测数组或对象变动的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!来看一个实例:<!DOCTYPE html> <htm...
    99+
    2024-04-02
  • js如何解析php数组对象
    本篇内容介绍了“js如何解析php数组对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   1. 介绍...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作