A funcionalidade Ações é uma funcionalidade alfa que expande o intervalo de métodos da API que o Deployment Manager pode chamar. Uma vez que esta funcionalidade não é suportada, recomendamos que
migre a sua utilização existente
de ações para alternativas suportadas. A ação usada frequentemente
storage.buckets.setIamPolicy corresponde a um tipo de recurso do Deployment Manager
existente, virtual.buckets.iamMemberBinding, que pode usar para a substituir.
Migrar a sua implementação de storage.buckets.setIamPolicy para virtual.buckets.iamMemberBinding
O recurso virtual.buckets.iamMemberBinding é um recurso virtual que
representa uma associação de políticas de gestão de identidade e de acesso (IAM). O tipo completo é
gcp-types/storage-v1:virtual.buckets.iamMemberBinding.
virtual.buckets.iamMemberBinding tem uma implementação personalizada das operações de criação, leitura, atualização e eliminação (CRUD) a partir do back-end do Deployment Manager. 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 que um tipo de recurso normal.
Para migrar a sua implementação, substitua a utilização de Action
storage.buckets.setIamPolicy pelo recurso
virtual.buckets.iamMemberBinding em todos os seus ficheiros de configuração de implementação. Se tiver várias associações, pode precisar de vários recursos para implementar a mesma lógica em todas elas. O tipo virtual não substitui nenhuma associação existente num recurso, mas aplica patches às novas.
Exemplos de utilização para migrar manualmente
Para concluir a migração manualmente, consulte os seguintes exemplos de utilização. Em
determinados casos, como a aplicação de várias associações da IAM,
pode ter de adicionar metadata.dependsOn ou referências a outros recursos ao
recurso iamMemberBinding para evitar situações como condições de concorrência.
YAML + Jinja
Segue-se um exemplo de como a setIamPolicyação é usada num ficheiro de configuração YAML. Esta abordagem não é suportada e deve ser substituída
pela utilização 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 seguinte mostra a utilização recomendada do recurso virtual iamMemberBinding num 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
Segue-se um exemplo de como a setIamPolicyação é usada num modelo do Python. Esta abordagem não é suportada e deve ser substituída pela utilização do recurso virtual iamMemberBinding:
O exemplo seguinte mostra a utilização recomendada do recurso virtual iamMemberBinding num modelo Python:
Pode encontrar exemplos adicionais relacionados com o modelo
gcs-bucket.py 
no
cloud-foundation-toolkit repositório 
no GitHub. Para uma demonstração detalhada do processo de conversão do modelo gcs-bucket.py de utilização da ação setIamPolicy para utilização do recurso virtual iamMemberBinding, consulte o exemplo de conversão.
Também pode encontrar
exemplos de utilização 
do modelo convertido.