簡體   English   中英

在Azure Devops的cURL請求中使用環境變量

[英]Using Environment Variables in a cURL request on Azure Devops

我正在嘗試使用Azure DevOps上的cURL通過命令行任務將zip文件上傳到Netlify。

顯然,我不想在yaml文件中使用Netlify訪問令牌,因此我已經為其創建了一個秘密變量(使用UI設計器),並使用docs中的語法對其進行了映射。

但是我一直從Netlify獲得401。 我可以通過POSTMAN確認訪問令牌有效。 所以我不確定我在做什么錯。 我在請求中錯誤地使用了env變量嗎?

這是YAML文件中用於上傳文件的部分。

- script:  >-
      curl
      -H 'Authorization: Bearer $env:ACCESS_TOKEN' 
      -H 'Content-Type: application/zip'
      --data-binary '@$(Build.BuildId).zip'
      https://api.netlify.com/api/v1/sites/$env:SITE_ID/deploys
  workingDirectory: '$(Build.ArtifactStagingDirectory)'
  displayName: 'Upload to Netlify'
  env: 
    ACCESS_TOKEN: $netlifyAccessToken
    SITE_ID: $netlifySiteId

Netlify的回復:

{"code":401,"message":"Access Denied: Origin returned bad status 401"}` 

編輯:

以下是我設法使用文檔中的“ input-macro”語法使其正常工作后的完整YAML文件

trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'

variables:
  configuration: debug
  platform: x64

steps:
- task: DotNetCoreInstaller@0
  displayName: Install .NET Core SDK
  name: install_dotnetcore_sdk
  enabled: true
  inputs:
    packageType: 'sdk'
    version: '2.2.101'

- script: dotnet tool install -g Wyam.Tool
  displayName: Install Wyam

- script: wyam
  displayName: Build Site 

- task: ArchiveFiles@2
  displayName: Zip Site
  inputs:
    rootFolderOrFile: '$(Agent.BuildDirectory)/s/output' 
    includeRootFolder: true
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' 
    replaceExistingArchive: true

- script:  >-
      curl
      -H 'Authorization: Bearer $(netlifyAccessToken)' 
      -H 'Content-Type: application/zip'
      --data-binary '@$(Build.BuildId).zip'
      https://api.netlify.com/api/v1/sites/$(netlifySiteId)/deploys
  workingDirectory: '$(Build.ArtifactStagingDirectory)'
  displayName: 'Upload to Netlify'

您需要使用bash語法來檢索環境變量,而不是powershell(因為您正在使用bash,而不是powershell):

-H "Authorization: Bearer $ACCESS_TOKEN"

我也懷疑您需要更新環境聲明:

env: 
  ACCESS_TOKEN: $(netlifyAccessToken) << ADO token to replace with variable from build scope
  SITE_ID: $(netlifySiteId)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM