小编gui*_*apc的帖子

如何通过 terraform 检索 Azure 规模集的 VM 专用 IP 地址?

我想知道如何使用 Terraform-provider-azurerm 检索规模集虚拟机的私有 IP 地址。我认为没有资源或数据资源直接返回VM IP。

我尝试的一种选择是通过模板资源生成 shellscript。

# get_vmss_privateip.tpl
#!/bin/bash

cap=`az vmss show \
    --resource-group ${resource_group} \
    --subscription ${subscription} \
    --name ${name} \
    --query 'sku.capacity'`
for i in `seq 1 $cap`
do
az resource show \
    --resource-group ${resource_group} \
    --resource-type Microsoft.Compute/virtualMachineScaleSets \
    --api-version 2017-03-30 \
    --name ${name}/virtualMachines/$i/networkInterfaces \
    --query 'value[0].properties.ipConfigurations[0].properties' \
| jq -c '{privateIPAddress}'
done
Run Code Online (Sandbox Code Playgroud)

然后运行terraform生成sh。

data "template_file" "private_ip_scripts" {
  template = "${file("templates/get_vmss_privateip.tpl")}"

  vars {
    resource_group = "${data.azurerm_resource_group.current.name}"
    subscription   = "${data.azurerm_subscription.current.subscription_id}"
    name           = "${azurerm_virtual_machine_scale_set.test.name}"
  }
}

resource "local_file" …
Run Code Online (Sandbox Code Playgroud)

terraform azure-vm-scale-set terraform-provider-azure

5
推荐指数
1
解决办法
1936
查看次数

哪个更好地获取Golang字符串的最后一个X字符?

当我有一个字符串"hogemogehogemogehogemoge世界世界世界"哪个代码更好,以避免内存分配得到最后的符文?

关于获取Golang String的最后X个字符有类似的问题.

如何获取Golang字符串的最后X个字符?

如果我只是想获得最后一个符文,我想确定哪个是首选的,没有任何额外的操作.

package main

import (
    "fmt"
    "unicode/utf8"
)

func main() {
    // which is more better for memory allocation?
    s := "hogemogehogemogehogemoge??????a"
    getLastRune(s, 3)
    getLastRune2(s, 3)
}

func getLastRune(s string, c int) {
    // DecodeLastRuneInString
    j := len(s)
    for i := 0; i < c && j > 0; i++ {
        _, size := utf8.DecodeLastRuneInString(s[:j])
        j -= size
    }
    lastByRune := s[j:]
    fmt.Println(lastByRune)
}

func getLastRune2(s string, c int) {
    // string -> []rune
    r := …
Run Code Online (Sandbox Code Playgroud)

string utf-8 go rune

2
推荐指数
1
解决办法
329
查看次数