azure - 使用 Service Principal Login 和 pulumi 配置中的连接信息时出现 Pulumi 错误
问题描述
我正在使用 GitHub Actions 运行pulumi-pr.yml
我希望能够基于堆栈部署到不同的订阅。
我创建了一个 az ad 服务原则,并使用以下内容将信息放入 Pulumi 配置中:
pulumi config set azure:clientId <clientID>
pulumi config set azure:clientSecret <clientSecret> --secret
pulumi config set azure:tenantId <tenantID>
pulumi config set azure:subscriptionId <subscriptionId>
当 GitHub 操作运行时,我收到以下错误:
error: building auth config: obtain subscription() from Azure CLI: Error parsing json result from the Azure CLI: Error waiting for the Azure CLI: exit status 1
这是整个yaml:
name: Pulumi Preview
on:
pull_request:
branches:
- main
workflow_dispatch:
jobs:
preview:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Install Pulumi CLI
uses: pulumi/action-install-pulumi-cli@v1
- uses: pulumi/actions@v3
with:
command: preview
stack-name: trinsic/Cramer
work-dir: infrastructure/Source/Trinsic.Okapi
env:
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
解决方案
以下堆栈配置文件(例如 Pulumi.dev.yaml)和 github 操作工作流文件应该可以工作。
配置文件(基于https://www.pulumi.com/docs/intro/cloud-providers/azure/setup/#service-principal-authentication)
config:
azure-native:clientId:
secure: AAABAJ....BDFDSFSD
azure-native:clientSecret:
secure: AAABABebOGe5....BDSFDS
azure-native:location: CentralUS
azure-native:subscriptionId:
secure: AAABAEgNKrTHhf....SFDFSDFSD
azure-native:tenantId:
secure: AAABAIoNQ...GDEFSFDSfs
还有一个像这样的工作流文件:
name: Update:Windows - Config Vars - Manual Trigger
on:
workflow_dispatch:
branches:
- main
jobs:
up:
name: Update
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14.x
- run: npm install
- uses: pulumi/actions@v3
with:
command: update
stack-name: dev
env:
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
推荐阅读
- python - 提取具有图像差异的对象
- elasticsearch - 如何对两种不同的数据类型进行搜索查询?
- mysql - Mysql:从字符串中提取数字
- ruby-on-rails - 当凭据错误时,带有自定义注册控制器的双前缀子目录用于设计
- c++ - 无法访问 Arduino 结构字段。错误“退出状态1。xxxx没有命名类型”
- ruby-on-rails - Apache 如何以及为什么拦截对 Rails 的一些 CORS 请求?
- docker - GCE 未正确部署 GCR 映像
- ios - iOS Swift:我们如何在 Pinterest 中创建 pin?
- c# - 为什么 GroupPrincipal 的 DirectoryEntry 实例中的 ObjectSecurity 属性始终为空?
- amazon-web-services - Kubernetes 中的真正负载平衡?