首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不需要Pulumi服务的Pulumi自动化API

使用不需要Pulumi服务的Pulumi自动化API
EN

Stack Overflow用户
提问于 2022-09-14 14:38:15
回答 4查看 191关注 0票数 1

我试图使用Pulumi构建一个CLI,并希望将所需的Pulumi状态存储在GCP存储桶中(使用Pulumi可以使用pulumi login gs://some-bucket实现这一点)。

文档中,我找不到有关这方面的信息,仅提及与登录相关的主题是使用Pulumi访问令牌与Pulumi服务对话--这是我想要避免的。

在不使用Pulumi服务的情况下使用自动化API的选项是否存在?

EN

回答 4

Stack Overflow用户

发布于 2022-09-14 14:43:47

自动化API不管理登录到Pulumi的机制。您应该已经选择了后端,并在开始使用它之前登录到它。

登录后,设置一个不使用组织功能的项目名称,它应该可以正常工作。下面是一个使用Python的示例

代码语言:javascript
复制
# create_pulumi_program is a function that has a Pulumi program in it
def pulumi_program():
  return create_pulumi_program(stack_name, image, int(port))


# create a workspace
stack = auto.create_stack(
  stack_name=str("dev"),
  project_name="my-project", # with the OSS backends, you cannot do "my-org/my-project"
  program=pulumi_program,
)
票数 0
EN

Stack Overflow用户

发布于 2022-11-21 01:09:35

根据我上面的注释,您可以通过设置环境变量PULUMI_BACKEND_URL来引用不同的Pulumi后端。

请参阅Pulumi文档中的示例:https://www.pulumi.com/docs/reference/cli/environment-variables/#environment-variables

就您的例子而言,您可以:

  • 已经设置了PULUMI_BACKEND_URL环境变量,或者
  • 使用以下方法在运行时设置环境变量:
代码语言:javascript
复制
import os
os.environ["PULUMI_BACKEND_URL"] = "gs://some-bucket"
票数 0
EN

Stack Overflow用户

发布于 2022-11-29 09:29:08

在LocalWorkspaceOptions内部的ProjectSettings中有一种直接设置后端配置的方法。

代码语言:javascript
复制
from pulumi.automation import create_or_select_stack
from pulumi.automation import LocalWorkspace
from pulumi.automation import LocalWorkspaceOptions
from pulumi.automation import ProjectBackend
from pulumi.automation import ProjectSettings

# Option for local backend
backend_dir = 'path to your local backend directory'
backend_url = f'file://{backend_dir}'

# Option for remote backend in GCS
backend_url = 'gs://your-gcs-bucket'

stack = create_or_select_stack(
    stack_name=STACK_NAME,
    project_name=PROJECT_NAME,
    program=func_that_creates_resources,
    opts=LocalWorkspaceOptions(
        secrets_provider=SECRET_PROVIDER,
        work_dir=WORK_DIR,
        project_settings=ProjectSettings(
            name=PROJECT_NAME,
            runtime='python',
            backend=ProjectBackend(backend_url)
    )))


stack.up()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73718769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档