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 setIamPolicy
açã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 setIamPolicy
açã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.