Como importar e exportar recursos do Google Cloud em massa
Nesta página, descrevemos o comando config-connector bulk-export
e como usá-lo para
exportar recursos do Google Cloud para arquivos YAML do Config Connector
que podem ser importados posteriormente para o Config Connector.
config-connector bulk-export
usa a funcionalidade de Exportação do Inventário de recursos do Cloud para descobrir recursos existentes do Google Cloud. É possível providenciar uma exportação do Inventário de recursos do Cloud ou config-connector
pode realizar a exportação em seu nome.
O Inventário de recursos do Cloud exporta estruturas JSON. Cada estrutura tem o nome do recurso, o tipo de inventário e os recursos ancestrais: projetos, pastas e organização. Para descobrir os tipos compatíveis com o inventário de recursos, consulte Tipos de recursos compatíveis.
Antes de começar
Se você quiser usar a ferramenta
config-connector
para exportar diretamente do Config Connector, ative a API Cloud Asset Inventory no projeto do Google Cloud Identity comgcloud
.gcloud services enable cloudasset.googleapis.com
Exemplo de exportação em massa
Neste exemplo, você cria um PubSubTopic com a Google Cloud CLI e depois importá-lo para o Config Connector.
Crie um tópico chamado
sample-topic
com a Google Cloud CLI:gcloud pubsub topics create sample-topic
Você recebe a confirmação de que o tópico foi criado.
Created topic [projects/PROJECT_ID/topics/sample-topic].
Na saída,
PROJECT_ID
é substituído pelo projeto do Google Cloud.Consiga o nome do recurso do Google Cloud do tópico e salve-o em uma variável de ambiente com o seguinte comando:
TOPIC_RESOURCE_NAME=$(gcloud pubsub topics describe sample-topic --format "value(name)")
Para identificar objetos, a ferramenta
config-connector
usa estruturas JSON do Inventário de recursos do Cloud. Salve a estrutura JSON do recurso do tópico em uma variável de ambiente:TOPIC_ASSET='{"name":"//pubsub.googleapis.com/'"${TOPIC_RESOURCE_NAME}"'","asset_type":"pubsub.googleapis.com/Topic"}'
Transmita o recurso para
config-connector bulk-export
executando o seguinte comando:echo ${TOPIC_ASSET} | config-connector bulk-export
A saída é um recurso do Config Connector no formato YAML.
--- apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: annotations: cnrm.cloud.google.com/project-id: PROJECT_ID name: sample-topic ...
Na saída,
PROJECT_ID
é substituído pelo projeto do Google Cloud.Você pode transmitir esse recurso para o Config Connector com
kubectl apply -f -
. Para transmitir o recurso diretamente, execute o seguinte comando:echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl apply -f - --namespace CC_NAMESPACE
Substitua CC_NAMESPACE pelo namespace em que o Config Connector gerencia recursos.
O Config Connector adquire o recurso.
Confirme se o Config Connector está gerenciando o recurso com
kubectl describe
:kubectl describe pubsubtopic sample-topic --namespace CC_NAMESPACE
Substitua
CC_NAMESPACE
pelo namespace em que o Config Connector gerencia recursos.
Como fazer a limpeza
É possível excluir o PubSubTopic com config-connector bulk-export
e kubectl delete
.
echo ${TOPIC_ASSET} | config-connector bulk-export | kubectl delete -f - --namespace CC_NAMESPACE
Substitua CC_NAMESPACE
pelo namespace em que o Config Connector
gerencia recursos.
Como descobrir recursos para importar
Ao importar recursos, é possível realizar uma exportação do Inventário de recursos do Cloud e fornecer os resultados para config-connector bulk-export
ou fazer com que config-connector bulk-export
execute uma em seu nome.
Como importar de uma exportação do Inventário de recursos do Cloud
Você pode fornecer uma exportação de inventário de recursos com um caminho para um arquivo local contendo a exportação ou canalizando os resultados de uma exportação para config-connector
no STDIN.
Como importar de um arquivo local
Você pode fornecer uma exportação de inventário de recursos para config-connector bulk-export
usando um arquivo local com o parâmetro --input
.
config-connector bulk-export --input ASSET_INVENTORY_EXPORT
Substitua ASSET_INVENTORY_EXPORT
pelo nome do arquivo da exportação do Inventário de recursos do Cloud.
Importação do STDIN
Para fornecer uma exportação de inventário de recursos no STDIN, canalize os resultados de uma exportação para config-connector bulk-export
. Por exemplo, se a exportação estiver em um arquivo local chamado export.json
, canalize o conteúdo do arquivo para config-connector bulk-export
sem fornecer nenhum dos parâmetros de exportação.
cat export.json | config-connector bulk-export
Como filtrar uma exportação do Inventário de recursos em STDIN
Para filtrar uma exportação de inventário de recursos, use a ferramenta jq
e a barra vertical para inserir os resultados em config-connector bulk-export
. Por exemplo, se você quiser importar apenas recursos do PubSubTopic do arquivo EXPORT_FILE, execute o seguinte comando:
cat EXPORT_FILE | jq '. | select( .asset_type == "pubsub.googleapis.com/Topic" )' | config-connector bulk-export
Como exportar um inventário com o Config Connector
A ferramenta config-connector bulk-export
pode exportar recursos de uma hierarquia de recursos do Google Cloud.
Como exportar seu projeto
Para exportar todos os recursos do projeto, use o parâmetro --project
.
config-connector bulk-export --project PROJECT_ID
Substitua PROJECT_ID
pelo ID do projeto do Google Cloud.
Como exportar sua pasta
Para exportar todos os recursos de uma pasta, use o parâmetro --folder
.
config-connector bulk-export --folder FOLDER_NUMBER
Substitua FOLDER_NUMBER
pelo número da pasta do Google Cloud.
Como exportar sua organização
Para exportar todos os recursos da sua organização, use o parâmetro --organization
.
config-connector bulk-export --organization ORGANIZATION_ID
Substitua ORGANIZATION_ID
pelo ID da organização do Google Cloud.
Local no Cloud Storage
O local de saída da exportação de inventário de recursos é um
URI do Google Cloud Storage. Quando config-connector bulk-export
realiza uma exportação, ele usa um bucket do Cloud Storage. Por padrão, config-connector bulk-export
cria um bucket temporário. Também é possível especificar o nome do bucket.
Bucket temporário do Cloud Storage
Se você não fornecer o parâmetro --storage-key
, o config-connector
bulk-export
criará um bucket temporário do Cloud Storage em seu nome. O
bucket é criado no local padrão para buckets de armazenamento. US
multirregional. O bucket é excluído quando
a exportação for concluída.
Como especificar um bucket temporário
Para especificar um bucket, use um URI do Cloud Storage com o parâmetro storage-key
. Se o URI for apenas o nome do bucket, um nome será gerado para o objeto de armazenamento de exportação. Se o URI for um caminho completo para um objeto de armazenamento, o caminho completo será usado.
config-connector bulk-export --storage-key gs://BUCKET_NAME
Saída
A saída do comando config-connector bulk-export
são
os recursos do Config Connector no formato YAML. O arquivo YAML é gravado em
STDOUT por padrão. É possível direcionar a saída de recursos para arquivos com a
opção output
.
Saída para um único arquivo
Quando você define o parâmetro --output
, config-connector bulk-export
grava os resultados em um único arquivo se uma das seguintes condições for verdadeira:
- O arquivo especificado por
output
existe e é um arquivoregular
. - O arquivo especificado por
output
não existe e o diretório pai representado poroutput
existe.
Saída para um diretório
config-connector
grava os resultados em vários arquivos quando o parâmetro --output
é um diretório que termina em um /
. config-connector bulk-export
cria um arquivo por recurso, e os nomes dos arquivos correspondem aos nomes dos recursos.
config-connector bulk-export --project PROJECT_ID --on-error continue --output OUTPUT_DIRECTORY/
Substitua PROJECT_ID
pelo ID do projeto do Google Cloud.
Por exemplo, para enviar recursos do projeto my-project
para o diretório sample
,
execute o seguinte comando:
config-connector bulk-export --project my-project --on-error continue --output sample/
Recursos suportados
Imprima a lista de recursos da ferramenta config-connector
com formatos de nomes de recursos executando o seguinte comando:
config-connector print-resources
Opções da linha de comando
O comando config-connector bulk-export
tem as seguintes opções:
config-connector bulk-export
--input FILENAME \
--output FILENAME \
--storage-key gs://BUCKET_NAME \
--project PROJECT_ID \
--folder FOLDER_NUMBER \
--organization ORGANIZATION_ID \
--oauth2-token TOKEN \
--on-error [halt | continue | ignore] \
--iam-format [policy | policymember | none] \
--filter-deleted-iam-members [true | false] \
--verbose
--input
: arquivo de entrada do Inventário de recursos do Cloud.--output
: um caminho de arquivo de saída opcional que desativa a saída padrão. Quando um arquivo é gerado, o resultado contém toda a resposta ao comando. Quando um diretório é gerado, ele contém um novo arquivo para cada recurso na resposta.--storage-key
: bucket de destino temporário do Cloud Storage para exportação.--project
: ID do projeto do Google Cloud a ser exportado--folder
: ID da pasta do Google Cloud a ser exportada--organization
: ID da organização do Google Cloud a ser exportada.--oauth2-token
: um token OAUTH2 como a identidade do Google Cloud. Por padrão, oconfig-connector
usa as credenciais padrão da Google Cloud CLI.--on-error
: controle o comportamento quando ocorrer um erro recuperável. As opções são "continuar", "parar" ou "ignorar".halt
: interrompe a execução em qualquer erro (padrão)continue
: continue processando recursos, imprima o erro para STDERRignore
: continue processando recursos e não imprima o erro
--iam-format
: especifica o tipo de saída dos recursos do Cloud IAM com sua exportação. As opções sãopolicy
(padrão),policymember
ounone
.--filter-deleted-iam-members
: especifica se você quer filtrar as principais do IAM excluídas. As opções sãotrue
oufalse
. O valor padrão éfalse
.--verbose
: ativa o registro detalhado.
A seguir
- Leia sobre como o Config Connector adquire recursos existentes do Google Cloud
- Saiba mais sobre o Inventário de recursos do Cloud e Como exportar recursos para o Cloud Storage.
- Saiba mais sobre os recursos compatíveis com o Config Connector.