Go Terraform自定义提供程序-数据源

Go Terraform自定义提供程序-数据源,go,schema,terraform,terraform-provider-aws,terraform-provider-azure,Go,Schema,Terraform,Terraform Provider Aws,Terraform Provider Azure,我目前正在为Jumpcloud开发一个自定义地形提供商,在配置自定义数据源方面遇到了一些挑战。我发现资源模式需要创建、读取、更新和删除 我只是想在Terraform中运行一个API查询,以便返回一个用户列表,并在for循环中使用这些用户 下面是我标记为schema.Resource的API调用 func userquery() *schema.Resource { apiKey := "" userGroupID := "" contentType := "applic

我目前正在为Jumpcloud开发一个自定义地形提供商,在配置自定义数据源方面遇到了一些挑战。我发现资源模式需要创建、读取、更新和删除

我只是想在Terraform中运行一个API查询,以便返回一个用户列表,并在for循环中使用这些用户

下面是我标记为schema.Resource的API调用

func userquery() *schema.Resource {
    apiKey := ""
    userGroupID := ""

    contentType := "application/json"
    accept := "application/json"

    // Instantiate the API client
    client := jcapiv2.NewAPIClient(jcapiv2.NewConfiguration())

    // Set up the API key via context
    auth := context.WithValue(context.TODO(), jcapiv2.ContextAPIKey, jcapiv2.APIKey{
        Key: apiKey,
    })

    // Make an API call to retrieve a specific user group by ID
    userGroup, res, err := client.UserGroupsApi.GroupsUserGet(auth, userGroupID, contentType, accept, nil)
    if err != nil {
        fmt.Printf("Error retrieving user group %s: %s - response = %+v\n", userGroupID, err, res)
    } else {
        fmt.Printf("Details for User group %s: %+v\n", userGroupID, userGroup)
    }

    return nil

}

这是地图

ResourcesMap: map[string]*schema.Resource{
            "jumpcloud_user":                  resourceUser(),
            "jumpcloud_user_group":            resourceUserGroup(),
            "jumpcloud_user_group_membership": resourceUserGroupMembership(),
            "jumpcloud_user_query":            userquery(),

        },

这就是我收到的错误。有趣的是,这是从API调用返回正确的名称,但是仍然有一个错误


我在使用Terraform方面没有太多经验,但我将此线程转发给了一位有经验的同事,这是他们发给我的

“用户试图为其自定义JC提供程序而不是资源构建自定义数据源。我在这方面的经验很少,但是,他的错误似乎与他如何构建插件有关,但没有关于他使用的terraform或golang版本的信息,所以我很抱歉,我无法帮助他。我建议引用定制JC提供者(),因为它们构建了一些定制数据源,但没有任何特定于云的定制数据源。希望这能有所帮助。”

您是否检查过这个JC terraform提供程序,看看它是否适合您的用例


干杯

这看起来像是您在资源中添加了额外的函数和参数,而没有创建新的数据源。是的,我不确定如何在providerI中添加实际的数据源,我没有,这正是我需要的示例。感谢您的帮助!您可能应该接受此答案或发布自己对此问题的答案