O recurso de ações é um recurso Alfa que expande o intervalo de métodos de API que o Deployment Manager pode chamar. Como esse recurso não é compatível, recomendamos que você
migre seu uso existente
das ações para alternativas compatíveis. A ação storage.buckets.setIamPolicy
mais usada corresponde a um tipo de recurso atual do Deployment Manager, virtual.buckets.iamMemberBinding
, que pode ser usado para substituí-lo.
Como migrar a implantação de storage.buckets.setIamPolicy
para virtual.buckets.iamMemberBinding
O recurso virtual.buckets.iamMemberBinding
é um recurso virtual que
representa uma vinculação de política de gerenciamento de identidade e acesso (IAM). O tipo completo é
gcp-types/storage-v1:virtual.buckets.iamMemberBinding
.
virtual.buckets.iamMemberBinding
tem uma implementação personalizada de operações de criação, leitura, atualização e exclusão (CRUD, na sigla em inglês) do back-end do Deployment Manager. Ele chama um método semelhante ao método chamado pela ação
storage.buckets.setIamPolicy
, mas é modelado como um recurso normal em vez
de uma ação e segue o mesmo ciclo de vida de um tipo de recurso normal.
Para migrar sua implantação, substitua o uso da ação
storage.buckets.setIamPolicy
pelo recurso
virtual.buckets.iamMemberBinding
em todos os arquivos de configuração
de implantação. Se você tiver várias vinculações, talvez precise de vários recursos para implementar a mesma lógica nelas. O tipo virtual não substitui as vinculações atuais em um recurso, mas corrige as novas.
Exemplos de uso para migrar manualmente
Para concluir a migração manualmente, consulte os exemplos de uso a seguir. Em certos casos, como a aplicação de várias vinculações do IAM, pode ser necessário adicionar metadata.dependsOn
ou referências a outros recursos para o iamMemberBinding
para evitar situações como disputas de dados.
YAML + Jinja
Veja a seguir um exemplo de como a ação setIamPolicy
é usada em um
arquivo de configuração YAML. Essa abordagem não é compatível e precisa ser substituída pelo uso do recurso virtual iamMemberBinding
:
- name: patch-iam-policy
action: gcp-types/storage-v1:storage.buckets.setIamPolicy
properties:
bucket:
policy: # existing policy, e.g. from a getIamPolicyAction
gcpIamPolicyPatch:
add:
O exemplo a seguir mostra o uso recomendado do recurso virtual
iamMemberBinding
em um modelo YAML e Jinja:
{% set BUCKETNAME = "bucket-" + env["deployment"] %}
resources:
- type: gcp-types/storage-v1:buckets
name: {{ BUCKETNAME }}
properties:
location: US
storageClass: STANDARD
- type: gcp-types/storage-v1:virtual.buckets.iamMemberBinding
name: test-bucket-iam
properties:
bucket: $(ref.{{ BUCKETNAME }}.name)
member: projectEditor:{{ env["project"] }}
role: roles/storage.admin
Python
Veja a seguir um exemplo de como a ação setIamPolicy
é usada em um
modelo Python. Essa abordagem não é compatível e precisa ser substituída pelo uso do recurso virtual iamMemberBinding
:
O exemplo a seguir mostra o uso recomendado do recurso virtual
iamMemberBinding
em um modelo Python:
É possível encontrar outras amostras relacionadas ao
modelo gcs-bucket.py
no
repositório cloud-foundation-toolkit
no GitHub. Para ver uma demonstração detalhada do processo de conversão do
modelo gcs-bucket.py
usando a ação setIamPolicy
para usar o
recurso virtual iamMemberBinding
, consulte o
exemplo de conversão..
Também é possível encontrar
exemplos de uso
do modelo convertido.