

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwaltung von Komponenten
<a name="about-aws-devops-agent-managing-assets"></a>

AWS DevOps Der Agent speichert die Konfiguration und das Referenzmaterial für einen Agent Space als ** Ressourcen**. Diese vom Kunden verwalteten Ressourcen bestimmen, was der Agent weiß und wie er sich verhält. Fähigkeiten, AGENTS.md Dateien und Anlagen sind alles Ressourcen, und Sie können sie programmgesteuert über die Asset-API erstellen, lesen, aktualisieren und löschen.

Um zu konfigurieren, was der AWS DevOps Agent weiß und wie er sich verhält, verwalten Sie Assets in Ihrem Agent Space. In diesem Thema werden das Asset-Modell, die IAM-Berechtigungen und die Metadaten behandelt, die jeder Asset-Typ erwartet. Verwenden Sie die AWS CLI, das AWS SDK für Python (Boto3) oder, um Assets von Anfang AWS CloudFormation bis Ende zu verwalten. Einen konzeptionellen Überblick über die Fähigkeiten selbst finden Sie unter. [DevOps Fähigkeiten von Agenten](about-aws-devops-agent-devops-agent-skills.md) Von Agenten generiertes Wissen, das Sie nicht selbst erstellen, finden Sie unter. [Erlernte Fähigkeiten](about-aws-devops-agent-learned-skills.md)

## Wann sollte die Asset-API verwendet werden
<a name="when-to-use-the-asset-api"></a>

Die Operator Web App ist der schnellste Weg, um einen einzelnen Skill zu erstellen oder eine AGENTS.md Datei interaktiv hochzuladen. Die Asset-API stellt dieselben Operationen programmatisch zur Verfügung, sodass mithilfe von Skripten und Automatisierungen Ressourcen verwaltet werden können, ohne die Web-App zu verwenden. Zu den häufigsten Gründen, die Asset-API direkt aufzurufen, gehören:
+ Erstellen oder Aktualisieren eines Assets über ein Skript, ein Terminal oder ein Notizbuch statt über die Web App.
+ Bulk-loading einen ersten Satz von Fähigkeiten oder AGENTS.md Dateien in einem neuen Agentenbereich.
+ Lesen des Inhalts eines Assets, um es zu sichern oder Versionen zu vergleichen.

Jeder Vorgang in der Asset-API wird über die AWS CLI `aws devops-agent <operation>` und über die AWS SDKs als `devops-agent` Client bereitgestellt.

## Asset-API-Operationen
<a name="asset-api-operations"></a>

Die Asset-API macht die folgenden Operationen verfügbar. In jeder Zeile sind die IAM-Aktion aufgeführt, die Sie gewähren müssen, um den Vorgang aufzurufen, sowie die Ressource, für die die Aktion gilt. Jede Aktion befindet sich im `aidevops:` Namespace und gilt, mit Ausnahme von`ListAssetTypes`, für eine Agent Space-Ressource dieses Formulars. `arn:aws:aidevops:<region>:<account-id>:agentspace/<agentSpaceId>` Weitere Hintergrundinformationen zu `aidevops:` Berechtigungen finden Sie unter[DevOps IAM-Berechtigungen für Agenten](aws-devops-agent-security-devops-agent-iam-permissions.md).


| Operation | Description | IAM-Aktion | Ressource | 
| --- | --- | --- | --- | 
| ListAssetTypes | Listet die vom AWS DevOps Agenten unterstützten Asset-Typen auf. | aidevops:ListAssetTypes | \* | 
| CreateAsset | Erstellen Sie ein neues Asset in einem Agentenbereich (Skill AGENTS.md, Anhang, benutzerdefinierter Agent, Speicher, Speicher, Testprofil oder Feedback). | aidevops:CreateAsset | Agent-Bereich | 
| GetAsset | Ruft die Metadaten und Versionsinformationen eines Assets ab. | aidevops:GetAsset | Speicherplatz für Agenten | 
| UpdateAsset | Aktualisieren Sie die Metadaten oder den Inhalt eines vorhandenen Assets. | aidevops:UpdateAsset | Agent Space | 
| DeleteAsset | Löschen Sie ein Asset und alle zugehörigen Dateien aus einem Agentenbereich. | aidevops:DeleteAsset | Agent-Bereich | 
| ListAssets | Listet Ressourcen in einem Agentenbereich auf und filtert optional nach Asset-Typ. | aidevops:ListAssets | Bereich für Agenten | 
| ListAssetVersions | Listet die historischen Versionen eines Assets auf. | aidevops:ListAssetVersions | Agent Space | 
| GetAssetContent | Laden Sie den vollständigen Inhalt eines Assets als ZIP-Paket herunter. | aidevops:GetAssetContent | Agent Space | 
| CreateAssetFile | Fügt eine neue Datei zu einem vorhandenen Asset hinzu. | aidevops:CreateAssetFile | Speicherplatz für Agenten | 
| GetAssetFile | Ruft eine einzelne Datei anhand ihres Pfads aus einem Asset ab. | aidevops:GetAssetFile | Speicherplatz für Agenten | 
| UpdateAssetFile | Ersetzt den Inhalt oder die Metadaten einer vorhandenen Datei in einem Asset. | aidevops:UpdateAssetFile | Agent Space | 
| DeleteAssetFile | Entfernt eine einzelne Datei aus einem Asset. | aidevops:DeleteAssetFile | Agent Space | 
| ListAssetFiles | Listet die Dateien in einem Asset auf. | aidevops:ListAssetFiles | Agent Space | 

### IAM-Beispielrichtlinien
<a name="example-iam-policies"></a>

Die folgende Richtlinie gewährt vollen Verwaltungszugriff auf Ressourcen in einem einzigen Agentenbereich:

```
{
  "Version": "2012-10-17",		 	 	 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aidevops:CreateAsset",
        "aidevops:GetAsset",
        "aidevops:UpdateAsset",
        "aidevops:DeleteAsset",
        "aidevops:ListAssets",
        "aidevops:ListAssetVersions",
        "aidevops:GetAssetContent",
        "aidevops:CreateAssetFile",
        "aidevops:GetAssetFile",
        "aidevops:UpdateAssetFile",
        "aidevops:DeleteAssetFile",
        "aidevops:ListAssetFiles"
      ],
      "Resource": "arn:aws:aidevops:us-east-1:111122223333:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c"
    },
    {
      "Effect": "Allow",
      "Action": "aidevops:ListAssetTypes",
      "Resource": "*"
    }
  ]
}
```

Die folgende Richtlinie gewährt Lesezugriff auf Ressourcen in einem einzigen Agentenbereich:

```
{
  "Version": "2012-10-17",		 	 	 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aidevops:GetAsset",
        "aidevops:ListAssets",
        "aidevops:ListAssetVersions",
        "aidevops:GetAssetContent",
        "aidevops:GetAssetFile",
        "aidevops:ListAssetFiles"
      ],
      "Resource": "arn:aws:aidevops:us-east-1:111122223333:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c"
    },
    {
      "Effect": "Allow",
      "Action": "aidevops:ListAssetTypes",
      "Resource": "*"
    }
  ]
}
```

## Arten von Vermögenswerten
<a name="asset-types"></a>

Jedes Asset hat eine `assetType` Zeichenfolge, die angibt, um welche Art von Ressource es sich handelt. Über die Asset-API können Sie acht Asset-Typen erstellen: `skill` `agents_md``attachment`,`custom_agent`,`memory_store`,`memory`,`test_profile`, und`feedback`. In den folgenden Abschnitten werden die einzelnen Typen beschrieben. Sie können auch aufrufen`ListAssetTypes`, um die Typbezeichner zur Laufzeit abzurufen.

Jedes Asset enthält ein `metadata` JSON-Objekt in freier Form, das die Ressource beschreibt. Die darin enthaltenen Schlüssel `metadata` verwenden snake\_case (z. B.,). `agent_types` `skill_type` Die Schlüssel außerhalb`metadata`, auf der obersten Ebene des Anforderungstexts, verwenden camelCase (z. B.,,). `agentSpaceId` `assetType` `clientToken` Die erforderlichen und optionalen `metadata` Schlüssel hängen vom Asset-Typ ab, wie in den folgenden Abschnitten beschrieben.

Wenn Sie `UpdateAsset` oder aufrufen`UpdateAssetFile`, wendet der Service die PATCH-Semantik an auf`metadata`: Schlüssel, die Sie einbeziehen, werden ersetzt, und Schlüssel, die Sie weglassen, behalten ihre gespeicherten Werte bei. Sie können die eines Assets nicht mehr ändern, `assetType` nachdem es erstellt wurde.

### Qualifikation
<a name="skill"></a>

Ein `skill` Asset enthält Anweisungen und Referenzmaterial, das der Agent bei Bedarf lädt. Ein einfacher Skill ist eine einzelne `SKILL.md` Datei; ein komplexer Skill ist ein ZIP-Paket, das eine `SKILL.md` Datei plus optionale `references/` oder `assets/` Verzeichnisse enthält.

**Erforderliche `metadata` Eigenschaften: **
+ **name ** (string) — Ein eindeutiger Bezeichner für den Skill. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—64 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden. Nur für einfache Fähigkeiten erforderlich. Bei ZIP-Uploads liest der Dienst `name` aus der `SKILL.md` Titelseite und jeder hier angegebene Wert wird ignoriert.
+ **description ** (string) — Eine 1—1024 Zeichen lange Erklärung, wann der Agent den Skill einsetzen sollte. Nur für einfache Fähigkeiten erforderlich. Bei ZIP-Uploads liest der Dienst `description` aus der `SKILL.md` Titelseite und jeder hier angegebene Wert wird ignoriert.
+ **agent\_types ** (Zeichenkettenarray) — Ein oder mehrere Agententypen, für die dieser Skill gilt. Wird verwendet`["GENERIC"]`, um den Skill allen Agententypen zur Verfügung zu stellen. Andere Werte sind `CHAT``INCIDENT_TRIAGE`,`INCIDENT_RCA`,`INCIDENT_MITIGATION`, `PREVENTION``RELEASE_READINESS_REVIEW`, und`RELEASE_TESTING`. Der `GENERIC` Wert kann nicht mit anderen Werten kombiniert werden.

**Optionale `metadata` Eigenschaften: **
+ **skill\_type ** (string) — Der Standardwert ist. `USER` Die Asset-API erlaubt nur vom Kunden erstellte Skills, daher ist der einzig akzeptierte Wert `USER` Der Service lehnt Anfragen ab, die `skill_type` auf gesetzt sind. Dieser Wert ist für Fähigkeiten reserviert`LEARNED`, die vom Agenten selbst generiert wurden.
+ **status ** (string) — Aktivierungsstatus des Skills. Zulässige Werte sind `ACTIVE` und `INACTIVE` (nur in Großbuchstaben). Standardeinstellung: `ACTIVE`. Inaktive Fähigkeiten verbleiben im Agentenbereich, werden aber vom Agenten während der Ermittlungen oder im Chat nicht geladen. Benutze `UpdateAsset` with`metadata.status`, um einen Skill zu deaktivieren oder zu reaktivieren, ohne ihn zu löschen. Skills sind der einzige Asset-Typ, der die Aktivierung unterstützt. Das `status` Feld wird bei allen anderen Asset-Typen ignoriert. Ein praktisches Beispiel finden Sie unter [ Aktivierung und Deaktivierung von Fähigkeiten](#activating-and-deactivating-skills).
+ **enable\_tools ** (Zeichenkettenarray) — Eine Liste von Tool-Identifikatoren, die der Agent aufrufen kann, wenn er diesen Skill lädt.

**Beispiel: `metadata` **

```
{
  "name": "rds-performance-investigation",
  "description": "Investigation procedures for RDS performance issues including connection exhaustion, slow queries, replication lag, and storage capacity. Use this skill when investigating database latency, connection errors, or read/write performance degradation.",
  "agent_types": ["GENERIC"]
}
```

**Einschränkungen: ** Zip-Uploads dürfen 6 MB nicht überschreiten. Ein Agent Space kann bis zu 200 von Benutzern erstellte Skills enthalten.

### agents\_md
<a name="agents-md"></a>

Ein `agents_md` Asset ist eine Markdown-Datei, die ständige Agentenanweisungen für einen bestimmten Agententyp enthält. Der Agent lädt das Matching AGENTS.md zu Beginn jeder Aufgabe. Weitere Informationen zu Anweisungen für Agenten finden Sie unter[Anweisungen für Agenten](about-aws-devops-agent-agent-instructions.md).

**Erforderliche `metadata` Eigenschaften: **
+ **agent\_type ** (string) — Der Agententyp, für den die AGENTS.md Datei gilt. Gültige Werte sind`GENERIC`,`CHAT`,`INCIDENT_TRIAGE`,`INCIDENT_RCA`, `INCIDENT_MITIGATION` `PREVENTION``RELEASE_READINESS_REVIEW`, und. `RELEASE_TESTING`

**Beispiel`metadata`: **

```
{
  "agent_type": "INCIDENT_TRIAGE"
}
```

**Grenzwerte: ** Jeder Agentenbereich kann maximal einen AGENTS.md pro Person enthalten`agent_type`. Der Dateiinhalt muss markdown (`text/markdown`) sein und darf 25 KB nicht überschreiten.

### attachment
<a name="attachment"></a>

Ein `attachment` Asset speichert eine Binär- oder Textdatei, auf die der Agent bei Untersuchungen verweisen kann, z. B. ein Architekturdiagramm, ein Runbook-PDF oder eine Beispielprotokolldatei.

**Erforderliche `metadata` Eigenschaften: **
+ **filename ** (string) — Der ursprüngliche Dateiname, einschließlich des Basisnamens und eventueller Erweiterungen (z. B.`topology.png`).
+ **extension ** (string) — Die Dateierweiterung ohne den führenden Punkt (z. B.`png`,`pdf`,`csv`).
+ **size ** (number) — Die Größe der Datei in Byte.

**Beispiel`metadata`: **

```
{
  "filename": "topology.png",
  "extension": "png",
  "size": 184320
}
```

**Grenzwerte: ** Die Gesamtgröße aller Anlagen in einem Agent Space darf 10 GB nicht überschreiten.

### custom\_agent
<a name="custom-agent"></a>

Ein `custom_agent` Asset definiert eine spezialisierte Agentenkonfiguration mit einem kuratierten Satz von Tools und Fähigkeiten. Verwenden Sie einen benutzerdefinierten Agenten, um den Agenten auf einen bestimmten Arbeitsablauf oder eine Reihe von Funktionen zuzuweisen.

**Erforderliche `metadata` Eigenschaften: **
+ **name ** (string) — Ein eindeutiger Bezeichner für den benutzerdefinierten Agenten. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—64 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden.

**Optionale `metadata` Eigenschaften: **
+ **tools ** (Zeichenkettenarray) — Die Tool-IDs, die der benutzerdefinierte Agent verwenden darf. Wenn sie weggelassen wird, wird standardmäßig eine leere Liste verwendet.
+ **Skills ** (Reihe von Zeichenketten) — Die Skill-Identifikatoren, die der benutzerdefinierte Agent lädt. Wenn sie weggelassen wird, wird standardmäßig eine leere Liste verwendet.

**Beispiel: `metadata` **

```
{
  "name": "rds-firefighter",
  "tools": ["cloudwatch:GetMetricData", "rds:DescribeDBInstances"],
  "skills": ["rds-performance-investigation"]
}
```

### memory\_store
<a name="memory-store"></a>

Ein `memory_store` Asset ist ein Container, der zusammengehörende Speicherdateien gruppiert. Der Agent liest den Namen und die Beschreibung des Speichers, um zu entscheiden, ob er ihn öffnen und die darin enthaltenen Speicher auflisten soll. Speicher und Speicherspeicher unterstützen den Agentenspeicher. Weitere Informationen zu Erinnerungen finden Sie unter[DevOps Erinnerungen an Agenten](about-aws-devops-agent-devops-agent-memories.md).

Erstellen Sie Erinnerungen in zwei Schritten. Erstellen Sie zunächst die `memory_store`. Erstellen Sie dann jedes `memory` darin enthaltene Element, wie im [ Speicher beschrieben](#memory).

**Erforderliche `metadata` Eigenschaften: **
+ **name ** (string) — Ein eindeutiger Bezeichner für den Speicher. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—128 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden.
+ **description ** (string) — Eine 1—1024 Zeichen lange Beschreibung dessen, was das Geschäft enthält. Der Agent verwendet es, um zu entscheiden, ob das Geschäft geöffnet werden soll.

**Optionale `metadata` Eigenschaften: **
+ **agent\_types ** (Zeichenkettenarray) — Die Leadagententypen, die den Shop sehen können. Wird verwendet`["GENERIC"]`, um den Store für alle Agententypen sichtbar zu machen.

**Beispiel`metadata`: **

```
{
  "name": "incident-runbooks",
  "description": "Operational memories about past incidents and their resolutions.",
  "agent_types": ["GENERIC"]
}
```

### memory
<a name="memory"></a>

Ein `memory` Asset ist eine einzelne Speicherdatei, die zu einem Speicherspeicher gehört. Der Agent liest den Namen und die Beschreibung des Speichers, um zu entscheiden, ob die gesamte Datei gelesen werden soll. Erstellen Sie `memory_store` zuerst das übergeordnete Objekt und geben Sie dann `memory_store_id` im Speicher die Asset-ID des Speichers ein.

**Erforderliche `metadata` Eigenschaften: **
+ **name ** (string) — Ein Bezeichner für den Speicher, geschrieben als `/` -getrennter Pfad aus Segmenten in Kebab-Großbuchstaben, 1—255 Zeichen (z. B.). `databases/rds-failover`
+ **description ** (string) — Eine 1—1024 Zeichen umfassende Beschreibung dessen, was der Speicher enthält.
+ **memory\_store\_id ** (string) — Die Asset-ID des Speichers, zu dem dieser Speicher gehört.

**`metadata`Optionale Eigenschaften: **
+ **expires\_at ** (number) — Eine Aufbewahrungsfrist in Epochensekunden. Wenn diese Option gesetzt ist, löscht der Dienst den Speicher automatisch nach Ablauf der Frist (normalerweise innerhalb von 48 Stunden). Lassen Sie diese Eigenschaft weg, um den Speicher so lange beizubehalten, bis Sie ihn löschen.

**Beispiel: `metadata` **

```
{
  "name": "databases/rds-failover",
  "description": "Steps that resolved the RDS failover incident in June.",
  "memory_store_id": "a1b2c3d4-5678-90ab-cdef-example11111"
}
```

### test\_profile
<a name="test-profile"></a>

Ein `test_profile` Asset speichert eine wiederverwendbare Konfiguration für einen Release-Testlauf, einschließlich der Art des durchzuführenden Tests und des Zielendpunkts.

**Erforderliche Eigenschaften`metadata`: **
+ **test\_agent\_type ** (string) — Die Art der Tests, die dieses Profil durchführt. Gültige Werte sind `releaseUiTesting` und `releaseApiTesting`.
+ **target\_url ** (string) — Die URL, auf die der Testlauf abzielt.

**Optionale Eigenschaften: `metadata` **
+ **name ** (string) — Ein für Menschen lesbarer Bezeichner für das Testprofil. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—128 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden.
+ **description ** (string) — Eine 1—1024 Zeichen lange Beschreibung dessen, was das Testprofil abdeckt.
+ **test\_personas ** (Zeichenkettenarray) — Die Personas, die während des Testlaufs trainiert werden sollen. Gültige Werte sind `guest` und `authenticated`.
+ **api\_spec ** (string) — Eine API-Spezifikation für den Testlauf. Relevant für. `releaseApiTesting`
+ **credentials secret\_arn ** (string) — Der ARN eines AWS Secrets Manager-Geheimnisses, das die Anmeldeinformationen für den Testlauf enthält.

**Beispiel: `metadata` **

```
{
  "name": "checkout-api-tests",
  "description": "Release API tests for the checkout service.",
  "test_agent_type": "releaseApiTesting",
  "target_url": "https://api.example.com",
  "test_personas": ["guest", "authenticated"],
  "api_spec": "openapi: 3.0.0",
  "credentials_secret_arn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:checkout-creds"
}
```

### Feedback
<a name="feedback"></a>

Ein `feedback` Asset zeichnet das Feedback des Kunden zu einer einzelnen Agentenausführung auf. Verwenden Sie Feedback-Ressourcen, um Urteile und Notizen zu erfassen, die in den nachgelagerten Evaluierungspipelines zusammengefasst werden können.

**Erforderliche Eigenschaften: `metadata` **
+ **agent\_types ** (Zeichenkettenarray) — Die Agententypen, die die Ausführung ausgelöst haben. Muss mindestens einen Wert enthalten (z. B.`INCIDENT_TRIAGE`).

**Optionale `metadata` Eigenschaften: **
+ **execution\_id ** (string) — Die Ausführung, mit der dieses Feedback verknüpft ist. Schalten Sie diese Option ein`CreateAsset`; sie kann nicht geändert werden. `UpdateAsset`

**Beispiel`metadata`: **

```
{
  "execution_id": "b2c3d4e5-6789-01ab-cdef-example22222",
  "agent_types": ["INCIDENT_TRIAGE"]
}
```

## Inhalt des Assets: Datei oder Zip
<a name="asset-content-file-or-zip"></a>

Jede `CreateAsset` Anfrage enthält ein `content` Objekt, das die Byte enthält, die das Asset speichert. Die Form von `content` hängt davon ab, ob Sie eine einzelne Datei oder ein Zip-Paket hochladen:
+ **Einzelne Textdatei ** — `content.file.body.text` enthält bis zu 1,5 MB UTF-8 Text. Verwenden Sie diese Option für einfache Fähigkeiten und AGENTS.md Dateien.

```json { "content": { "file": { "path": "SKILL.md", "body": { "text": "# Skill\n\nInstructions go here." } } } } ```
+ **Einzelne Binärdatei ** — `content.file.body.bytes` enthält bis zu 6 MB an Base64-kodiertem Binärinhalt. Verwenden Sie diese Option für Anlagen wie Bilder oder PDFs. Da das Blob innerhalb der `content` Union verschachtelt ist, sollten Sie die Datei im Voraus mit Base64 kodieren und die Anfrage mit senden `--cli-input-json` (ein funktionierendes Beispiel finden [ Sie unter Erstellen eines Skills aus einer Binärdatei](#create-a-skill-from-a-binary-file)).

```json { "content": { "file": { "path": "topology.png", "body": { "bytes": "<base64-encoded bytes>" } } } } ```
+ **Zip-Paket ** — `content.zip.zipFile` enthält ein Base64-kodiertes Zip-Archiv von bis zu 6 MB. Verwenden Sie dies für Fähigkeiten, die zusätzliche Dateien `SKILL.md` in einem `references/` OR-Verzeichnis enthalten. `assets/`

```json { "content": { "zip": { "zipFile": "<base64-encoded zip bytes>" } } } ```

Um einzelne Dateien in einem vorhandenen Asset hinzuzufügen, zu ersetzen oder zu löschen, ohne das gesamte Paket erneut hochzuladen `CreateAssetFile``UpdateAssetFile`, verwenden Sie und. `DeleteAssetFile`

## Eine Fähigkeit von Anfang bis Ende verwalten
<a name="managing-a-skill-end-to-end"></a>

In der folgenden exemplarischen Vorgehensweise wird ein Skill auf drei verschiedene Arten erstellt (aus einer einzelnen Textdatei, aus einer Binärdatei und aus einem Zip-Paket). Anschließend werden die Lese-, Aktualisierungs- und Löschvorgänge ausgeführt. Ersetzen Sie es `8f6187a7-0388-4926-8217-3a0fe32f757c` durch Ihre Agent Space-ID.

### Erstellen Sie einen Skill aus einer einzigen Textdatei
<a name="create-a-skill-from-a-single-text-file"></a>

Dies ist der einfachste Pfad: eine einzelne `SKILL.md` Datei, die direkt hochgeladen wird. Da der Upload genau eine Textdatei enthält, müssen Sie eine `name` und `description` in angeben`metadata`.

**AWS CLI: **

```
aws devops-agent create-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-type skill \
  --metadata '{
    "name": "rds-performance-investigation",
    "description": "Investigation procedures for RDS performance issues. Use when investigating database latency, connection errors, or query timeouts.",
    "agent_types": ["GENERIC"]
  }' \
  --content '{
    "file": {
      "path": "SKILL.md",
      "body": {
        "text": "# RDS Performance Investigation\n\nUse this skill when customers report database latency, connection errors, query timeouts, or read/write performance degradation."
      }
    }
  }'
```

**Python (Boot 3): **

```
import boto3

client = boto3.client("devops-agent")

response = client.create_asset(
    agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c",
    assetType="skill",
    metadata={
        "name": "rds-performance-investigation",
        "description": (
            "Investigation procedures for RDS performance issues. "
            "Use when investigating database latency, connection errors, "
            "or query timeouts."
        ),
        "agent_types": ["GENERIC"],
    },
    content={
        "file": {
            "path": "SKILL.md",
            "body": {
                "text": (
                    "# RDS Performance Investigation\n\n"
                    "Use this skill when customers report database latency, "
                    "connection errors, query timeouts, or read/write "
                    "performance degradation."
                )
            },
        }
    },
)

asset_id = response["asset"]["assetId"]
```

### Erstellen Sie einen Skill aus einer Binärdatei
<a name="create-a-skill-from-a-binary-file"></a>

Verwenden Sie einen binären Upload, wenn es sich bei dem Skillinhalt nicht um UTF-8 Text handelt. Im folgenden Beispiel wird eine vorgerenderte PDF-Datei als Skill-Text hochgeladen. Da der Anforderungstext einen Base64-kodierten Blob enthält, der innerhalb der `content` Union verschachtelt ist, stellen Sie die Anfrage aus einer JSON-Datei bereit `--cli-input-json` und codieren Sie das Blob im Voraus mit Base64.

Das `-w 0` Flag unten weist GNU `base64` an, den kodierten Blob in einer einzigen Zeile auszugeben; ohne ihn fügt der standardmäßige 76-Zeichen-Zeilenumbruch Zeilenumbrüche ein, die zu ungültigem JSON führen, wenn das Blob in das Heredoc interpoliert wird. Verwenden `base64 -i ops-runbook.pdf` Sie unter macOS (das BSD umbricht standardmäßig nicht). `base64`

**Erstellen Sie den Anfragetext: **

```
base64 -w 0 ops-runbook.pdf > ops-runbook.b64
cat > create-skill.json <<EOF
{
  "agentSpaceId": "8f6187a7-0388-4926-8217-3a0fe32f757c",
  "assetType": "skill",
  "metadata": {
    "name": "ops-runbook",
    "description": "Operations runbook covering on-call escalation paths.",
    "agent_types": ["GENERIC"]
  },
  "content": {
    "file": {
      "path": "SKILL.pdf",
      "body": { "bytes": "$(cat ops-runbook.b64)" }
    }
  }
}
EOF
```

**AWS CLI: **

```
aws devops-agent create-asset --cli-input-json file://create-skill.json
```

**Python (Boot 3): **

```
with open("ops-runbook.pdf", "rb") as f:
    body_bytes = f.read()

response = client.create_asset(
    agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c",
    assetType="skill",
    metadata={
        "name": "ops-runbook",
        "description": "Operations runbook covering on-call escalation paths.",
        "agent_types": ["GENERIC"],
    },
    content={
        "file": {
            "path": "SKILL.pdf",
            "body": {"bytes": body_bytes},
        }
    },
)
```

### Erstelle einen Skill aus einem ZIP-Paket
<a name="create-a-skill-from-a-zip-bundle"></a>

Verwenden Sie einen ZIP-Upload, wenn der Skill mehr als eine Datei enthält, z. B. `SKILL.md` ein zusätzliches Referenzmaterial und Ressourcen. Bei ZIP-Uploads liest der Dienst `name` und `description` von der `SKILL.md` Titelseite, also füge sie nicht ein. `metadata`

Das Zip-Layout sieht wie folgt aus:

```
rds-performance-investigation.zip
├── SKILL.md
├── references/
│   └── rds-metrics-reference.md
└── assets/
    └── rds-investigation-flowchart.png
```

`SKILL.md`muss Frontmatter enthalten, damit der Dienst den Namen und die Beschreibung extrahieren kann:

```
---
name: rds-performance-investigation
description: Investigation procedures for RDS performance issues including
  connection exhaustion, slow queries, replication lag, and storage capacity.
  Use this skill when investigating database latency, connection errors, or
  read/write performance degradation.
---

# RDS Performance Investigation
...
```

**Erstellen Sie den Anfragetext: **

```
base64 -w 0 rds-performance-investigation.zip > skill.zip.b64
cat > create-skill.json <<EOF
{
  "agentSpaceId": "8f6187a7-0388-4926-8217-3a0fe32f757c",
  "assetType": "skill",
  "metadata": { "agent_types": ["GENERIC"] },
  "content": {
    "zip": { "zipFile": "$(cat skill.zip.b64)" }
  }
}
EOF
```

**AWS CLI: **

```
aws devops-agent create-asset --cli-input-json file://create-skill.json
```

**Python (Boot 3): **

```
with open("rds-performance-investigation.zip", "rb") as f:
    zip_bytes = f.read()

response = client.create_asset(
    agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c",
    assetType="skill",
    metadata={"agent_types": ["GENERIC"]},
    content={"zip": {"zipFile": zip_bytes}},
)
```

### Importiere einen Skill aus einem Repository
<a name="import-a-skill-from-a-repository"></a>

Sie können einen Skill erstellen, indem Sie ihn direkt aus einem GitHub Repository-Verzeichnis importieren. AWS DevOps Der Agent ruft den Inhalt des Skills ab, extrahiert den Namen und die Beschreibung aus der SKILL.md Titelseite und erstellt den Skill in Ihrem Agentenbereich. Auf diese Weise können Sie Skills in der Versionskontrolle verwalten und sie programmgesteuert importieren oder synchronisieren.

**Voraussetzungen:**
+ Ihrem Agent Space muss ein GitHub Konto zugeordnet sein. Siehe [Verbindung herstellen GitHub](connecting-to-cicd-pipelines-connecting-github.md).
+ Das Repository-Verzeichnis muss eine gültige SKILL.md Datei mit Frontmatter enthalten.

**AWS CLI: **

```
aws devops-agent create-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-type skill \
  --metadata '{ "agent_types": ["GENERIC"] }' \
  --content '{"sourceUrl": {"url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation"}}'
```

**Python (Boot 3): **

```
response = client.create_asset(
    agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c",
    assetType="skill",
    metadata={"agent_types": ["GENERIC"]},
    content={
        "sourceUrl": {
            "url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation"
        }
    },
)

asset_id = response["asset"]["assetId"]
```

Der Dienst ruft den Inhalt des Verzeichnisses ab, liest die SKILL.md Titelzeile für und `name` und importiert alle `description` Dateien. Ohne `name` oder `description` in `metadata` — sie werden automatisch aus der Titelseite extrahiert.

**Einen importierten Skill synchronisieren: **

Um die neuesten Änderungen aus dem Repository abzurufen, rufen Sie an `UpdateAsset` mit`content.sourceUrl`:

```
aws devops-agent update-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId> \
  --content '{"sourceUrl": {"url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation"}}'
```

```
response = client.update_asset(
    agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c",
    assetId="<assetId>",
    content={
        "sourceUrl": {
            "url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation"
        }
    },
)
```

Bei der Synchronisierung wird der Skill-Inhalt vollständig durch den aktuellen Status des Repository-Verzeichnisses ersetzt. Bearbeitbare Felder (Status, Agententypen) bleiben erhalten.

**Die Importquelle anzeigen: **

`GetAsset`gibt die Quellinformationen `metadata.source` für im Repository importierte Fähigkeiten zurück:

```
{
  "metadata": {
    "name": "rds-performance-investigation",
    "description": "Investigation procedures for RDS performance issues...",
    "source": {
      "url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation",
      "lastSyncedAt": 1718467200
    },
    "agent_types": ["GENERIC"],
    "skill_type": "USER",
    "status": "ACTIVE"
  }
}
```

**Einschränkungen**:
+ Nur URLs werden akzeptiert GitHub . Sie können auf ein Verzeichnis verweisen, das ein SKILL.md (z. B.`https://github.com/org/repo/tree/main/skills/my-skill`) enthält, das das gesamte Verzeichnis einschließlich der Referenzdateien importiert. Wenn SKILL.md sich das im Stammverzeichnis des Repositorys befindet, können Sie auch direkt auf die Datei verlinken (z. B.`https://github.com/org/repo/blob/main/SKILL.md`), wodurch nur die importiert wird SKILL.md.
+ Das Verzeichnis muss eine SKILL.md mit gültigem Frontmatter enthalten.
+ Die Gesamtgröße des Verzeichnisses darf 6 MB und höchstens 100 Dateien nicht überschreiten.
+ `content.sourceUrl`schließt sich mit `content.file` und gegenseitig aus `content.zip` — Sie können sie nicht in derselben Anfrage kombinieren.
+ Bei einem reinen Metadaten-Update (ohne`content`) bleibt die bestehende Importquelle erhalten und es erfolgt kein erneutes Abrufen aus dem Repository.

### Abrufen, Auflisten, Aktualisieren und Löschen
<a name="get-list-update-and-delete"></a>

Wird verwendet`GetAsset`, um ein einzelnes Asset nach ID abzurufen:

```
aws devops-agent get-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId>
```

Wird verwendet`ListAssets`, um jedes Asset in einem Agentenbereich durchzublättern:

```
aws devops-agent list-assets \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --max-results 50

aws devops-agent list-assets \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --max-results 50 \
  --next-token <token>
```

Wird verwendet`UpdateAsset`, um ein oder mehrere `metadata` Felder zu ändern, ohne den Inhalt erneut hochladen zu müssen. Schlüssel, die Sie weglassen, behalten ihre vorhandenen Werte bei:

```
aws devops-agent update-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId> \
  --metadata '{ "agent_types": ["INCIDENT_TRIAGE", "INCIDENT_RCA"] }'
```

Wird verwendet`ListAssetVersions`, um den Versionsverlauf eines Assets zu überprüfen. Bei jedem erfolgreichen `UpdateAsset` `UpdateAssetFile` Aufruf wird die Versionsnummer des Assets aktualisiert:

```
aws devops-agent list-asset-versions \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId>
```

Verwenden Sie`DeleteAsset`, um das Asset und alle zugehörigen Dateien zu entfernen:

```
aws devops-agent delete-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId>
```

### Eine einzelne Datei zu einem vorhandenen Skill hinzufügen
<a name="add-a-single-file-to-an-existing-skill"></a>

Wenn Sie bereits einen Skill aus einem ZIP-Paket erstellt haben und eine neue Referenzdatei hinzufügen möchten, müssen Sie nicht das gesamte Paket erneut hochladen. Benutze`CreateAssetFile`:

```
aws devops-agent create-asset-file \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId> \
  --path references/troubleshooting.md \
  --content '{ "text": "# Troubleshooting\n\nAdditional notes." }'
```

Um die Datei an Ort und Stelle zu ersetzen, verwenden Sie sie `update-asset-file` mit denselben Argumenten. Um es zu entfernen, verwenden Sie`delete-asset-file`.

### Fähigkeiten aktivieren und deaktivieren
<a name="activating-and-deactivating-skills"></a>

Fähigkeiten haben einen Aktivierungszustand. `metadata.status` Neue Fähigkeiten sind `ACTIVE` standardmäßig verfügbar und werden vom Agenten während der Ermittlungen und im Chat geladen. Sie können einen Skill deaktivieren, um ihn aus der Rotation zu entfernen, ohne ihn zu löschen, z. B. während Sie untersuchen, warum er zu unerwarteten Ergebnissen führt, und ihn später wieder aktivieren.

**Legen Sie den Anfangsstatus bei „Erstellen“ fest, ** indem Sie Folgendes `metadata.status` in die `CreateAsset` Anfrage aufnehmen:

```
aws devops-agent create-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-type skill \
  --metadata '{
    "name": "rds-performance-investigation",
    "description": "Investigation procedures for RDS performance issues.",
    "agent_types": ["GENERIC"],
    "status": "INACTIVE"
  }' \
  --content '{
    "file": {
      "path": "SKILL.md",
      "body": { "text": "# RDS Performance Investigation" }
    }
  }'
```

**Deaktiviere einen vorhandenen Skill ** mit`UpdateAsset`. Da `metadata` es sich um ein teilweises Update handelt, `status` bleibt beim Senden nur jedes andere Feld erhalten:

```
aws devops-agent update-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId> \
  --metadata '{ "status": "INACTIVE" }'
```

**Reaktivieren Sie ** auf die gleiche Weise, mit`"status": "ACTIVE"`:

```
aws devops-agent update-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-id <assetId> \
  --metadata '{ "status": "ACTIVE" }'
```

`GetAsset`und `ListAssets` geben Sie immer den aktuellen `status` Eingang `metadata` für Skill-Assets an, sodass Sie den aktuellen Aktivierungsstatus jederzeit nachlesen können.

Das Feld `status` unterscheidet Groß- und Kleinschreibung. Nur `ACTIVE` und `INACTIVE` (Großbuchstaben) werden akzeptiert. Jeder andere Wert schlägt mit einem `ValidationException` fehl. Die Aktivierung gilt nur für Fähigkeiten; die Einstellung `metadata.status` für einen anderen Asset-Typ hat keine Auswirkung und das Feld wird aus der Antwort entfernt.

## Verwaltung von Vermögenswerten mit AWS CloudFormation
<a name="managing-assets-with-aws-cloudformation"></a>

Verwenden Sie die Asset-API für interaktive oder skriptgesteuerte Änderungen. Um Vermögenswerte deklarativ zu verwalten, modellieren Sie sie als `AWS::DevOpsAgent::Asset` Ressourcen in. AWS CloudFormation Mit diesem Ansatz können Sie Ihre Ressourcen zusammen mit Ihrer anderen Infrastruktur versionskontrollieren, sie über eine Pipeline bereitstellen und sie in Agent Spaces reproduzieren. CloudFormation erstellt jedes Asset als untergeordnetes Element eines übergeordneten Agent Space, sodass ein Asset, das Sie in einer Vorlage definieren, genau der Ressource zugeordnet ist, die ein `CreateAsset` Aufruf generiert.

Sie verwalten jeden Asset-Typ über dieselbe `AWS::DevOpsAgent::Asset` Ressource. Die unterstützten Typen sind`skill`, `agents_md``attachment`,`custom_agent`,`memory_store`,`memory`,`test_profile`, und`feedback`. Nur der Inhalt von `AssetType``Metadata`, und unterscheidet sich von Typ zu Typ. In den folgenden Beispielen werden ein Skill und ein benutzerdefinierter Agent erstellt. Die anderen Typen folgen derselben Form und verwenden dabei die unter [ Asset-Typen beschriebenen Metadaten](#asset-types).

### Das Tool AWS:DevOpsAgent: :Asset-Ressource
<a name="the-awsdevopsagentasset-resource"></a>

Die Ressourceneigenschaften werden direkt den zuvor in diesem Thema beschriebenen `CreateAsset` Anforderungsfeldern zugeordnet:


| CloudFormation Eigentum | Typ | Zugeordnet zu | Hinweise | 
| --- | --- | --- | --- | 
| AgentSpaceId | Zeichenfolge | agentSpaceId | Erforderlich. Create-only— Wenn Sie es ändern, wird das Asset ersetzt. | 
| AssetType | Zeichenfolge | assetType | Erforderlich. Create-only. Die Asset-Typ-ID — zum Beispiel oder. skill custom\_agent Jeder Typ unter [ Asset-Typen ](#asset-types) ist gültig. | 
| Metadata | JSON | metadata | Das gleiche Metadatendokument wie die API (für einen Skill: namedescription,agent\_types, und optionalstatus). An Ort und Stelle aktualisiert. | 
| Files | Auflisten | content.file | Inline-Dateien, jeweils mit Path und entweder ContentText oderContentBytes, plus optional pro DateiMetadata. Schließt sich gegenseitig mit Zip aus. | 
| Zip | Zeichenfolge | content.zip.zipFile | Base64-encoded Zip-Paket. Schließt sich gegenseitig mit Files aus. | 
| AssetId | Zeichenfolge | asset.assetId | Read-only. Abrufen mitFn::GetAtt. | 
| Arn | Zeichenfolge | asset.arn | Read-only. Der Asset-ARN, der unter dem übergeordneten Agent Space verschachtelt ist. | 
| Version | Ganzzahl | asset.version | Read-only. Probleme bei jedem erfolgreichen Update. | 
| CreatedAt / UpdatedAt | Zeichenfolge | asset.createdAt / updatedAt | Read-only Zeitstempel. | 

Es lohnt sich, auf zwei Verhaltensweisen hinzuweisen, bevor Sie eine Vorlage schreiben:
+ **`AgentSpaceId`und können `AssetType` nur erstellt werden. ** Wenn Sie eines der beiden ändern, wird das Asset ersetzt. CloudFormation erstellt ein neues Asset mit einem neuen `AssetId` und `Arn` löscht dann das alte. Durch Änderungen an Inhalten und Metadaten wird das vorhandene Asset an Ort und Stelle aktualisiert.
+ **CloudFormation verwaltet das Asset als Ganzes ** — seine Metadaten und sein vollständiger Dateisatz. Um einen Skill zu ändern, bearbeiten Sie die Vorlage und aktualisieren Sie den Stack. Operationen, die sich auf Teile einer Anlage auswirken, sind nicht Teil der Ressource und bleiben erhalten API-only. Dazu gehören Änderungen pro Datei (`CreateAssetFile`,`UpdateAssetFile`,`DeleteAssetFile`) und der Versionsverlauf (`ListAssetVersions`). Dazu gehören auch das Herunterladen von Inhalten (`GetAssetContent`) sowie das Importieren und Synchronisieren von Repositorys (der `sourceUrl` Inhaltstyp). Verwenden Sie dafür die AWS CLI oder ein SDK, wie weiter oben in diesem Thema gezeigt.

### Erstellen Sie eine Fähigkeit
<a name="create-a-skill"></a>

Die folgende Vorlage erstellt den `rds-performance-investigation` Skill in einer einzelnen Datei, der in der AWS CLI-Komplettlösung verwendet wird. Sie verwendet die übergeordnete Agent Space ID als Parameter und exportiert die ID und den ARN des neuen Assets.

```
AWSTemplateFormatVersion: '2010-09-09'
Description: A DevOps Agent skill managed as an AWS::DevOpsAgent::Asset resource.

Parameters:
  AgentSpaceId:
    Type: String
    Description: The ID of the Agent Space that owns the skill.

Resources:
  RdsPerformanceSkill:
    Type: AWS::DevOpsAgent::Asset
    Properties:
      AgentSpaceId: !Ref AgentSpaceId
      AssetType: skill
      Metadata:
        name: rds-performance-investigation
        description: Investigation procedures for RDS performance issues.
        agent_types:
          - GENERIC
      Files:
        - Path: SKILL.md
          ContentText: |
            # RDS Performance Investigation

            Use this skill when customers report database latency, connection
            errors, query timeouts, or read/write performance degradation.

Outputs:
  SkillAssetId:
    Value: !GetAtt RdsPerformanceSkill.AssetId
  SkillArn:
    Value: !GetAtt RdsPerformanceSkill.Arn
```

Stellen Sie es mit der AWS CLI bereit und übergeben Sie dabei Ihre Agent Space ID:

```
aws cloudformation deploy \
  --template-file skill.yaml \
  --stack-name DevOpsAgentSkillStack \
  --parameter-overrides AgentSpaceId=8f6187a7-0388-4926-8217-3a0fe32f757c \
  --region <REGION>
```

Ein Skill, der mehr als eine Datei enthält — zum Beispiel ein `SKILL.md` Referenzdokument — fügt weitere Einträge hinzu zu: `Files`

```
      Files:
        - Path: SKILL.md
          ContentText: |
            # RDS Performance Investigation
            Investigation entry point.
        - Path: references/rds-metrics-reference.md
          ContentText: |
            # RDS metrics reference
            Key CloudWatch metrics to check.
```

Um den Skill deaktiviert zu erstellen oder ihn später zu deaktivieren, geben Sie Folgendes ein `Metadata` (siehe `status` Skills [#activating-and-deactivating-skills](#activating-and-deactivating-skills) aktivieren und deaktivieren) und aktualisieren Sie den Stack:

```
      Metadata:
        name: rds-performance-investigation
        description: Investigation procedures for RDS performance issues.
        agent_types:
          - GENERIC
        status: INACTIVE
```

### Erstellen Sie einen benutzerdefinierten Agenten
<a name="create-a-custom-agent"></a>

Ein benutzerdefinierter Agent ist dieselbe Ressource mit einem anderen `AssetType``Metadata`, und Inhalt. Die folgende Ressource erstellt ein `custom_agent` Asset, das eine Reihe von Tools und Fähigkeiten kuratiert. In der `skills` Liste werden Skills anhand ihrer `name` Metadaten referenziert, sodass Sie auf den Skill, den Sie zuvor erstellt haben, verweisen können.

```
  RdsFirefighter:
    Type: AWS::DevOpsAgent::Asset
    Properties:
      AgentSpaceId: !Ref AgentSpaceId
      AssetType: custom_agent
      Metadata:
        name: rds-firefighter
        tools:
          - cloudwatch:GetMetricData
          - rds:DescribeDBInstances
        skills:
          - rds-performance-investigation
      Files:
        - Path: AGENT.md
          ContentText: |
            # RDS Firefighter
            Custom agent for RDS incidents.
```

Die anderen Asset-Typen funktionieren auf die gleiche Weise — legen Sie die `Metadata` Schlüssel fest `AssetType` und geben Sie sie an, die für den Typ erforderlich sind (siehe [ Asset-Typen](#asset-types)). Zum Beispiel ein `agents_md` Asset-Set, das eine `AssetType: agents_md` Datei `agent_type: INCIDENT_TRIAGE` und eine `AGENTS.md` Datei `Metadata` enthält.

### Planen Sie den benutzerdefinierten Agenten mit einem Trigger
<a name="schedule-the-custom-agent-with-a-trigger"></a>

Um den benutzerdefinierten Agenten automatisch auszuführen, fügen Sie eine `AWS::DevOpsAgent::Trigger` Ressource hinzu. Ein Trigger ist ein Kind des Agent Space. Seine Aktion verweist auf den benutzerdefinierten Agenten, der ausgeführt werden soll, anhand der Asset-ID im Formular`custom:<assetId>`. Wird verwendet`Fn::GetAtt`, um die Daten des benutzerdefinierten Agenten zu übergeben CloudFormation , `AssetId` sodass die beiden Ressourcen miteinander verbunden werden und deren Erstellung angeordnet wird.

Der folgende Trigger führt den `rds-firefighter` benutzerdefinierten Agenten einmal täglich aus:

```
  DailyRdsCheck:
    Type: AWS::DevOpsAgent::Trigger
    Properties:
      AgentSpaceId: !Ref AgentSpaceId
      Type: TIME_BASED
      Condition:
        Schedule:
          Expression: rate(1 day)
      Action:
        actionType: create:task
        task:
          agent: !Sub
            - custom:${AssetId}
            - AssetId: !GetAtt RdsFirefighter.AssetId
      Status: Active
```

Die `Action` Eigenschaften `AgentSpaceId``Type`,`Condition`, und können nur erstellt werden. Wenn Sie einen von ihnen ändern, wird der Trigger ersetzt. Die `Status` Unterkunft akzeptiert `Active` oder `Inactive` und kann vor Ort aktualisiert werden. Stellen Sie ihn auf ein`Inactive`, um den Trigger anzuhalten, ohne ihn zu löschen. Weitere Hinweise zur Syntax von Zeitplanausdrücken finden Sie unter[Ausführen benutzerdefinierter Agenten](custom-agents-executing-custom-agents.md).

`AWS::DevOpsAgent::Asset`und `AWS::DevOpsAgent::Trigger` sind in den AWS Regionen verfügbar, in denen AWS DevOps Agent angeboten wird. Weitere Informationen zu den unterstützten AWS Regionen finden Sie unter[Unterstützte Regionen](about-aws-devops-agent-supported-regions.md). Informationen zur Bereitstellung des übergeordneten Agent Space, der IAM-Rollen und der Operator-App als Infrastruktur in Form von Code finden Sie unter[Erste Schritte mit AWS DevOps Agent verwendet AWS CloudFormation](getting-started-with-aws-devops-agent-getting-started-with-aws-devops-agent-using-aws-cloudformation.md).

## Beispiele für die anderen Asset-Typen
<a name="examples-for-the-other-asset-types"></a>

Die obige Komplettlösung gilt für alle anderen Asset-Typen. Der einzige Unterschied besteht im `metadata` Block und, bei Anhängen, in der Wahl des binären Inhalts. Die folgenden minimalen `CreateAsset` Aufrufe veranschaulichen die einzelnen Typen.

Speicherspeicher und Speicher verwenden dieselbe `CreateAsset` Operation. Erstellen Sie zuerst den Speicher und dann den Speicher. Weitere Informationen zu ihren Metadaten finden Sie unter [ memory\_store ](#memory_store) und [ memory. ](#memory)

**Erstellen Sie eine: AGENTS.md **

```
aws devops-agent create-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-type agents_md \
  --metadata '{ "agent_type": "INCIDENT_TRIAGE" }' \
  --content '{
    "file": {
      "path": "AGENTS.md",
      "body": { "text": "# Triage Instructions\n\nFollow these steps for new incidents." }
    }
  }'
```

**Erstellen Sie einen Anhang ** (binärer Inhalt; erstellen Sie die Anfrage aus einer JSON-Datei, wie unter Einen Skill aus einer Binärdatei [ erstellen gezeigt](#create-a-skill-from-a-binary-file)):

```
base64 -w 0 topology.png > topology.png.b64
cat > create-attachment.json <<EOF
{
  "agentSpaceId": "8f6187a7-0388-4926-8217-3a0fe32f757c",
  "assetType": "attachment",
  "metadata": {
    "filename": "topology.png",
    "extension": "png",
    "size": 184320
  },
  "content": {
    "file": {
      "path": "topology.png",
      "body": { "bytes": "$(cat topology.png.b64)" }
    }
  }
}
EOF
aws devops-agent create-asset --cli-input-json file://create-attachment.json
```

**Erstellen Sie einen benutzerdefinierten Agenten: **

```
aws devops-agent create-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-type custom_agent \
  --metadata '{
    "name": "rds-firefighter",
    "tools": ["cloudwatch:GetMetricData", "rds:DescribeDBInstances"],
    "skills": ["rds-performance-investigation"]
  }' \
  --content '{
    "file": {
      "path": "AGENT.md",
      "body": { "text": "# RDS Firefighter\n\nCustom agent for RDS incidents." }
    }
  }'
```

**Erstellen Sie ein Testprofil: **

```
aws devops-agent create-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-type test_profile \
  --metadata '{
    "name": "checkout-api-tests",
    "test_agent_type": "releaseApiTesting",
    "target_url": "https://api.example.com",
    "test_personas": ["guest", "authenticated"]
  }' \
  --content '{
    "file": {
      "path": "PROFILE.md",
      "body": { "text": "# Checkout API test profile" }
    }
  }'
```

**Erstellen Sie ein Feedback-Asset: **

```
aws devops-agent create-asset \
  --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \
  --asset-type feedback \
  --metadata '{
    "execution_id": "b2c3d4e5-6789-01ab-cdef-example22222",
    "agent_types": ["INCIDENT_TRIAGE"]
  }' \
  --content '{
    "file": {
      "path": "FEEDBACK.md",
      "body": { "text": "{\"verdict\":\"correct\"}" }
    }
  }'
```

**Liste der unterstützten Asset-Typen: **

```
aws devops-agent list-asset-types
```