当前位置: 首页 > 知识库问答 >
问题:

SAS令牌值在使用Azure CLI命令创建时的预期行为与通过Azure powershell命令创建时的预期行为不同

宗政元青
2023-03-14

我正在生成SAS令牌以访问ARM部署中的链接模板。我将SAS令牌作为参数覆盖传递给az部署命令。我的模板部署失败,错误为“无法从下载部署内容”https://myLinkedTemplateURL?SASToken'

首先,我获取存储在keyvault中的storageAccountKey:

$storeKey = az keyvault secret show --name "myStorageSecretName" --vault-name "myKeyVaultName" --query value
$storeKey  = $storeKey.Replace('"','')

然后,以下是我生成SAS令牌的两种方式:

>

  • 通过此方法生成的SAS令牌成功部署

    $上下文=New-AzureStorageContext-StorageAccount tName'myStorageAccount tName'-StorageAccount tKey$store Key$Tokenval=New-AzureStorageContainerSASToken-容器构建-权限rwdl-上下文$上下文

    使用此方法生成的SAS令牌无法部署

    $tokenval=azhtml" target="_blank">存储容器生成sas--帐户密钥$storeKey--帐户名称“myStorageAccountName”--名称“testcontainer”--权限acdlrw--过期(获取日期)。添加分钟数(30)。ToString(“yyyy-MM-dTH:mZ”)

    此外,我观察到第二个方法生成的SASToken的长度比第一个方法短。

    有没有人能帮我解释一下以上两种方法的区别,以及为什么一种方法失败了,而另一种方法成功了?

  • 共有1个答案

    景鸿才
    2023-03-14
    $tokenval = az storage container generate-sas --account-key $storeKey --account-name "myStorageAccountName" --name "testcontainer" --permissions acdlrw --expiry (Get-Date).AddMinutes(30).ToString("yyyy-MM-dTH:mZ")
    

    正如评论中提到的,问题实际上是SAS到期日期。您正在获取本地日期并以ISO 8601格式对其进行格式化,而您需要以UTC格式获取日期/时间值并对其进行格式化。

    请尝试以下操作:

    $tokenval = az storage container generate-sas --account-key $storeKey --account-name "myStorageAccountName" --name "testcontainer" --permissions acdlrw --expiry (Get-Date).ToUniversalTime().AddMinutes(30).ToString("yyyy-MM-dTH:mZ")
    
     类似资料:
    • 本文向大家介绍laravel 创建命令行命令的图文教程,包括了laravel 创建命令行命令的图文教程的使用技巧和注意事项,需要的朋友参考一下 1. 在命令行输入 php artisan make:command NiceWork(此处根据自己想要创建的命名) 2. 命令完成后,会在 目录中看到这个文件 3. 进入Console/Kernel.php , 注册该命令 4. 然后进入 NiceWor

    • 我正在使用下面的命令生成一个私钥和公钥。 openssl genrsa-out private.pem 2048 openssl rsa-in private.PEM-outform PEM-pubout-out public.PEM 但是我无法在这里添加过期日期,如何在这里将过期数据添加到公钥中。

    • 本文向大家介绍通过命令行创建vue项目的方法,包括了通过命令行创建vue项目的方法的使用技巧和注意事项,需要的朋友参考一下 最近想要学习vue,正好看到资料,如何通过命令创建vue项目的方法,就留个笔记 环境要求: 安装有 Node.js、 vue、vue-cli 。 创建项目: 进入项目,下载依赖: npm install 或者 cnpm install 运行项目: 效果如下: 创建项目 进入项

    • 用了这里提到的步骤 使用的命令行: 执行目标org.apache.maven.plugins失败:maven-arch etype-plugin:3.1.2:在项目练习中生成(default-cli)一:执行目标org.apache.maven.pluginsdefault-cli:maven-arch etype-plugin:3.1.2:生成失败:执行org.apache.maven.plug

    • 问题内容: 我有以下目录层次结构: 在这里,SigarTest是程序包名称。根文件夹位于jdk的bin文件夹中。从那里,我运行以下命令来创建我的项目的jar文件- 其中tools.jar,mongo-2.7.3.jar和sigar.jar是必需的,并且与根目录(jdk的bin文件夹)位于同一文件夹中。但是,运行它,我得到 我究竟做错了什么 ? 问题答案: 使用 目录 选项 哪些 临时改变目录( D

    • figlet figlet 是一款在 geek 程序员中很流行的文字转字符图案的自由软件,在很多知名开源项目代码中都能见到它的杰作: $ figlet windrunner _ _ __ _(_)_ __ __| |_ __ _ _ _ __ _ __ ___ _ __ \ \ /\ / / | '_ \ / _` | '__| |