Das Feature „Aktionen” ist ein Alphafeature, das die Reihe von API-Methoden erweitert, die Deployment Manager aufrufen kann. Da dieses Feature nicht unterstützt wird, empfehlen wir Ihnen, Ihre bestehende Nutzung von Aktionen zu unterstützten Alternativen zu migrieren. Die häufig verwendete Aktion storage.buckets.setIamPolicy
entspricht dem vorhandenen Ressourcentyp virtual.buckets.iamMemberBinding
von Deployment Manager, durch den Sie die Aktion ersetzen können.
Bereitstellung von storage.buckets.setIamPolicy
zu virtual.buckets.iamMemberBinding
migrieren
Die Ressource virtual.buckets.iamMemberBinding
ist eine virtuelle Ressource, die eine IAM-Richtlinienbindung (Identity and Access Management) darstellt. Der vollständige Typ ist gcp-types/storage-v1:virtual.buckets.iamMemberBinding
.
virtual.buckets.iamMemberBinding
hat eine benutzerdefinierte Implementierung der CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren und Löschen) aus dem Deployment Manager-Backend. Sie ruft eine ähnliche Methode wie die von der Aktion storage.buckets.setIamPolicy
aufgerufene Methode auf. Sie wird jedoch als normale Ressource anstelle einer Aktion modelliert und folgt demselben Lebenszyklus wie ein normaler Ressourcentyp.
Um Ihre Bereitstellung zu migrieren, ersetzen Sie in allen Konfigurationsdateien für die Bereitstellung die Nutzung der Aktion storage.buckets.setIamPolicy
durch die Ressource virtual.buckets.iamMemberBinding
. Wenn Sie mehrere Bindungen haben, benötigen Sie möglicherweise mehrere Ressourcen, um dieselbe Logik für diese zu implementieren. Der virtuelle Typ ersetzt keine vorhandenen Bindungen für eine Ressource, sondern patcht die neuen Bindungen.
Nutzungsbeispiele für die manuelle Migration
Informationen zur manuellen Migration finden Sie in den folgenden Nutzungsbeispielen. In bestimmten Fällen, z. B. bei der Anwendung mehrerer IAM-Bindungen, müssen Sie der Ressource iamMemberBinding
möglicherweise metadata.dependsOn
oder Verweise auf andere Ressourcen hinzufügen, um Situationen wie Race-Bedingungen zu vermeiden.
YAML und Jinja
Das folgende Beispiel zeigt, wie die Aktion setIamPolicy
in einer YAML-Konfigurationsdatei verwendet wird. Dieser Ansatz wird nicht unterstützt. Er sollte durch die Verwendung der virtuellen Ressource iamMemberBinding
ersetzt werden:
- name: patch-iam-policy
action: gcp-types/storage-v1:storage.buckets.setIamPolicy
properties:
bucket:
policy: # existing policy, e.g. from a getIamPolicyAction
gcpIamPolicyPatch:
add:
Im folgenden Beispiel wird die empfohlene Verwendung der virtuellen Ressource iamMemberBinding
in einer YAML- und Jinja-Vorlage gezeigt:
{% 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
Das folgende Beispiel zeigt, wie die Aktion setIamPolicy
in einer Python-Vorlage verwendet wird. Dieser Ansatz wird nicht unterstützt. Er sollte durch die Verwendung der virtuellen Ressource iamMemberBinding
ersetzt werden:
Im folgenden Beispiel wird die empfohlene Verwendung der virtuellen Ressource iamMemberBinding
in einer Python-Vorlage gezeigt:
Weitere Beispiele zur Vorlage gcs-bucket.py
finden Sie im Repository cloud-foundation-toolkit
auf GitHub. Der Konvertierungsvorgang für die Vorlage gcs-bucket.py
, sodass diese anstelle der Aktion setIamPolicy
die virtuelle Ressource iamMemberBinding
verwendet, wird ausführlich unter Beispielkonvertierung. erläutert.
Außerdem finden Sie
Anwendungsbeispiele
der konvertierten Vorlage.