Pulumi 意外地对共享访问签名 (SAS) 的部分内容进行了 urlencodes

Pulumi unexpectedly urlencodes parts of Shared Access Signature (SAS)

我们有下面的 golang 代码来从 Azure 获取共享访问签名。它有效,但打印的 sas 有一些字段,“日期字段”,不正确的 urlencoded。

...

conStr := ConvertPulumiStringToString(account.PrimaryConnectionString)
httpsOnly := true
now := time.Now()

sas, err := storage.GetAccountBlobContainerSAS(ctx, &storage.GetAccountBlobContainerSASArgs{
        ConnectionString:   <-conStr,
        ContainerName:      "container",
        Expiry:             now.AddDate(10, 0, 0).Format(time.RFC3339),
        HttpsOnly:          &httpsOnly,
        Permissions: storage.GetAccountBlobContainerSASPermissions{
            Add:    false,
            Create: false,
            Delete: false,
            List:   true,
            Read:   true,
            Write:  false,
        },
        Start: now.Format(time.RFC3339),
    })
    println(sas.Sas)

我们明白了st=2021-03-16T10%3A58%3A24%2B01%3A00

我们期望这种格式 st=2021-03-16T10:16:30Z

我已经尝试查看 pulumi 文档,但它非常有限。

感谢任何帮助。

问题是当使用 RFC3339 时区需要是 UTC 才能与 Azure 和 pulumi 一起工作。

conStr := ConvertPulumiStringToString(account.PrimaryConnectionString)
httpsOnly := true
now := time.Now().UTC()

sas, err := storage.GetAccountBlobContainerSAS(ctx, &storage.GetAccountBlobContainerSASArgs{
        ConnectionString:   <-conStr,
        ContainerName:      "container",
        Expiry:             now.AddDate(10, 0, 0).Format(time.RFC3339),
        HttpsOnly:          &httpsOnly,
        Permissions: storage.GetAccountBlobContainerSASPermissions{
            Add:    false,
            Create: false,
            Delete: false,
            List:   true,
            Read:   true,
            Write:  false,
        },
        Start: now.Format(time.RFC3339),
    })
    println(sas.Sas)