我试图使用Pulumi构建一个CLI,并希望将所需的Pulumi状态存储在GCP存储桶中(使用Pulumi可以使用pulumi login gs://some-bucket实现这一点)。
在文档中,我找不到有关这方面的信息,仅提及与登录相关的主题是使用Pulumi访问令牌与Pulumi服务对话--这是我想要避免的。
在不使用Pulumi服务的情况下使用自动化API的选项是否存在?
发布于 2022-09-14 14:43:47
自动化API不管理登录到Pulumi的机制。您应该已经选择了后端,并在开始使用它之前登录到它。
登录后,设置一个不使用组织功能的项目名称,它应该可以正常工作。下面是一个使用Python的示例
# 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,
)发布于 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环境变量,或者import os
os.environ["PULUMI_BACKEND_URL"] = "gs://some-bucket"发布于 2022-11-29 09:29:08
在LocalWorkspaceOptions内部的ProjectSettings中有一种直接设置后端配置的方法。
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()https://stackoverflow.com/questions/73718769
复制相似问题