我想将一些 Terraform 资源从一个存储库移动到另一个存储库。我认为最简单的方法是terraform import
在一个存储库中和terraform rm
另一个存储库中。
我terraform state list
可以获取资源列表,但没有它们的 ID。我认为我可以将该输出与terraform state show
但它非常慢并且我必须从 HCL 解析出 ID。不幸的是没有 JSON 输出。
我可以terraform show -json
获取 JSON 格式的整个状态,但可能会有很多模块嵌套,因此解析也不是微不足道的。
还有其他选择吗?
编辑1:
terraform show -json
对于我正在处理的相对较小的存储库,我有 2000 行(太多了,无法确定格式),开头为:
{
"format_version": "0.1",
"terraform_version": "0.14.9",
"values": {
"root_module": {
"child_modules": [
{
"address": "module.cloudtrail",
"child_modules": [
{
"address": "module.cloudtrail.module.cloudtrail_bucket",
"resources": [
{
Run Code Online (Sandbox Code Playgroud)
我认为至少还有一层嵌套child_modules
。我认为资源可以在各个层面上。可以从中获得列表,但我认为这不是微不足道的。
在空目录中包含以下内容:
$ zsh -d -f -i
% autoload -Uz compinit && compinit
% zstyle ':completion:*:*:cd:*:*' ignored-patterns foo
% mkdir foo
% mkdir bar
% mkdir zsh
Run Code Online (Sandbox Code Playgroud)
cd <TAB>
菜单。这很棒。bar
zsh
zsh
并执行时cd <TAB>
,bar
已完成且不显示菜单。也很棒。bar
并且我这样做时cd <TAB>
,foo
就完成了。我不希望这种事发生。cd <TAB>
完成父目录,然后cd <TAB>
我看到foo
或完成所有三种情况。有没有一种方法可以foo
完全忽略,这样我就永远看不到它,也永远不会在同一目录和任何其他目录中完成它?
编辑:
我发现使用zstyle ':completion:*:*:cd:*:*' ignored-patterns '**/foo'
从父目录查看被忽略的模式的问题消失了,但是当没有其他选择时,被忽略的模式仍然完成。所以这样:
$ zsh -d -f -i
% autoload -Uz compinit && compinit
% …
Run Code Online (Sandbox Code Playgroud) 我想通过 Google 设置具有 SAML 身份验证的 AWS 客户端 VPN。
我通过以下方式获得了实际的 VPN 连接:AWS VPN using federated Login with Google IdP - app_not_configured_for_user
我还想启用具有 SAML 身份验证的自助服务门户,如下所述: https: //docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html#federated-authentication Google 仅支持一个 ACS URL,所以我应该创建第二个应用程序。虽然上面的链接并不是非常具体,但我认为urn:amazon:webservices:clientvpn
也应该用于此目的。但是,当我尝试创建第二个应用程序时,我收到一条错误消息,指出实体 ID 应该是唯一的,并且无法继续,因为它已被第一个应用程序使用。
所以问题是:如何配置 Google,以便我可以通过 SAML 使用客户端 VPN和自助服务门户?