View a markdown version of this page

Gestione degli asset - AWS DevOps Agente

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione degli asset

AWS DevOps L'agente archivia la configurazione e il materiale di riferimento per un Agent Space come risorse, le risorse gestite dal cliente che determinano ciò che l'agente sa e come si comporta. Le competenze, AGENTS.md i file e gli allegati sono tutte risorse e puoi crearli, leggere, aggiornarli ed eliminarli a livello di codice tramite l'API Asset.

Questo argomento spiega il modello di asset, le autorizzazioni IAM necessarie, i metadati previsti da ogni tipo di asset e come gestire le risorse end-to-end con la AWS CLI e l'SDK for AWS Python (Boto3). Per una panoramica concettuale delle competenze stesse, vedi. DevOps Competenze degli agenti Per la conoscenza generata dagli agenti che non crei tu stesso, vedi. Competenze apprese

Quando utilizzare l'API Asset

L'Operator Web App è il modo più veloce per creare una singola abilità o caricare un AGENTS.md file in modo interattivo. L'API Asset espone le stesse operazioni a livello di codice in modo che gli script e l'automazione possano gestire le risorse senza passare attraverso l'app Web. I motivi più comuni per chiamare direttamente l'API Asset includono:

  • Creazione o aggiornamento di una risorsa da uno script, un terminale o un notebook anziché dall'app Web.

  • Bulk-loading un set iniziale di competenze o AGENTS.md file in un nuovo Agent Space.

  • Leggere il contenuto di una risorsa per eseguirne il backup o confrontare le versioni.

Ogni operazione nell'API Asset viene esposta tramite la AWS CLI aws devops-agent <operation> e tramite gli AWS SDK come client. devops-agent

Operazioni dell'API Asset

L'API Asset espone le seguenti operazioni. Ogni riga elenca l'azione IAM che devi concedere per chiamare l'operazione e la risorsa a cui si applica l'azione. Ogni azione risiede nel aidevops: namespace e, ad eccezione diListAssetTypes, si applica a una risorsa Agent Space del modulo. arn:aws:aidevops:<region>:<account-id>:agentspace/<agentSpaceId> Per informazioni più approfondite sulle aidevops: autorizzazioni, vedere. DevOps Autorizzazioni Agent IAM

Operation Description Azione IAM Risorsa
ListAssetTypes Elenca i tipi di risorse supportati da AWS DevOps Agent. aidevops:ListAssetTypes *
CreateAsset Crea una nuova risorsa in un Agent Space (abilità AGENTS.md, allegato, agente personalizzato, profilo di test o feedback). aidevops:CreateAsset Agent Space
GetAsset Recupera i metadati e le informazioni sulla versione di una risorsa. aidevops:GetAsset Agent Space
UpdateAsset Aggiorna i metadati o il contenuto di una risorsa esistente. aidevops:UpdateAsset Agent Space
DeleteAsset Eliminate una risorsa e tutti i relativi file da un Agent Space. aidevops:DeleteAsset Agent Space
ListAssets Elenca le risorse in un Agent Space, con filtro opzionale per tipo di risorsa. aidevops:ListAssets Agent Space
ListAssetVersions Elenca le versioni storiche di una risorsa. aidevops:ListAssetVersions Agente Space
GetAssetContent Scarica il contenuto completo di una risorsa come pacchetto zip. aidevops:GetAssetContent Agent Space
CreateAssetFile Aggiungi un nuovo file a una risorsa esistente. aidevops:CreateAssetFile Agent Space
GetAssetFile Recupera un singolo file da una risorsa in base al suo percorso. aidevops:GetAssetFile Agent Space
UpdateAssetFile Sostituisci il contenuto o i metadati di un file esistente in una risorsa. aidevops:UpdateAssetFile Agent Space
DeleteAssetFile Rimuovi un singolo file da una risorsa. aidevops:DeleteAssetFile Agent Space
ListAssetFiles Elenca i file all'interno di una risorsa. aidevops:ListAssetFiles Agent Space

Policy IAM di esempio

La seguente politica garantisce l'accesso completo alla gestione delle risorse in un unico Agent Space:

{ "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": "*" } ] }

La seguente politica garantisce l'accesso in sola lettura alle risorse in un singolo Agent Space:

{ "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": "*" } ] }

Tipi di risorse

Ogni risorsa ha una assetType stringa che identifica il tipo di risorsa. Tramite l'API Asset è possibile creare sei tipi di risorse: skillagents_md,attachment,custom_agent,test_profile, efeedback. Le sezioni che seguono descrivono ogni tipo. È inoltre possibile chiamare ListAssetTypes per recuperare gli identificatori di tipo in fase di esecuzione.

Ogni risorsa contiene un oggetto metadata JSON in formato libero che descrive la risorsa. Le chiavi interne metadata utilizzano snake_case (ad esempio,). agent_types skill_type Le chiavi esternemetadata, al livello superiore del corpo della richiesta, utilizzano CamelCase (ad esempioagentSpaceId,,assetType). clientToken Le metadata chiavi obbligatorie e opzionali dipendono dal tipo di risorsa, come descritto nelle sezioni seguenti.

Quando chiami UpdateAsset orUpdateAssetFile, il servizio applica la semantica PATCH ametadata: le chiavi che includi vengono sostituite e le chiavi omesse mantengono i valori memorizzati. Non è possibile modificare una risorsa assetType dopo che è stata creata.

competenza

Una skill risorsa contiene istruzioni e materiale di riferimento che l'agente carica quando necessario. Una skill semplice è un singolo SKILL.md file; una skill complessa è un pacchetto zip che contiene un SKILL.md file più alcune assets/ directory references/ opzionali.

Proprietà richiestemetadata:

  • name (string) — Un identificatore univoco per l'abilità. Solo lettere minuscole, numeri e trattini, da 1 a 64 caratteri. Non deve iniziare o terminare con un trattino. Richiesto solo per abilità semplici. Per i caricamenti in formato zip, il servizio legge name dal SKILL.md frontespizio e qualsiasi valore fornito qui viene ignorato.

  • descrizione (stringa) — Una spiegazione di 1—1024 caratteri su quando l'agente deve usare l'abilità. Richiesto solo per abilità semplici. Per i caricamenti in formato zip, il servizio legge description dal SKILL.md frontespizio e qualsiasi valore fornito qui viene ignorato.

  • agent_types (array di stringhe) — Uno o più tipi di agenti a cui si applica questa abilità. Usa ["GENERIC"] per rendere l'abilità disponibile a tutti i tipi di agenti. Altri valori includono CHATINCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION,PREVENTION,CHANGE_REVIEW,CHANGE_RELEASE, QUALITY_ASSURANCE_TESTINGRELEASE_SHEPHERD,RELEASE_READINESS_REVIEW, eRELEASE_TESTING. Il GENERIC valore non può essere combinato con altri valori.

metadataProprietà opzionali:

  • skill_type (string) — Il valore predefinito è. USER L'API Asset consente solo competenze create dal cliente, quindi l'unico valore accettato è. USER Il servizio rifiuta le richieste impostate su skill_typeLEARNED, che sono riservate alle competenze generate dall'agente stesso.

  • status (stringa) — Stato di attivazione dell'abilità. I valori accettati sono ACTIVE e INACTIVE (solo in maiuscolo). L’impostazione predefinita è ACTIVE. Le abilità inattive rimangono nell'Agent Space ma non vengono caricate dall'agente durante le indagini o la chat. Usa UpdateAsset with metadata.status per disattivare o riattivare un'abilità senza eliminarla. Le abilità sono l'unico tipo di risorsa che supporta l'attivazione; il status campo viene ignorato su tutti gli altri tipi di risorsa. Vedi Attivazione e disattivazione delle abilità per un esempio pratico.

  • enable_tools (array di stringhe) — Un elenco di identificatori di strumenti che l'agente può chiamare quando carica questa abilità.

Esempio: 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"] }

Limiti: i caricamenti in formato zip non devono superare i 6 MB. Un Agent Space può contenere fino a 200 competenze create dall'utente.

agents_md

Una agents_md risorsa è un file di markdown contenente le istruzioni dell'agente permanente per un tipo di agente specifico. L'agente carica la corrispondenza AGENTS.md all'inizio di ogni attività. Per ulteriori informazioni sulle istruzioni dell'agente, vedereIstruzioni per l'agente.

metadataProprietà richieste:

  • agent_type (string) — Il tipo di agente a cui si riferisce il AGENTS.md file. I valori validi sono GENERIC, CHAT, INCIDENT_TRIAGE, INCIDENT_RCA, INCIDENT_MITIGATION, PREVENTION, CHANGE_REVIEW, CHANGE_RELEASE, QUALITY_ASSURANCE_TESTING, RELEASE_SHEPHERD, RELEASE_READINESS_REVIEW e RELEASE_TESTING.

metadataEsempio:

{ "agent_type": "INCIDENT_TRIAGE" }

Limiti: ogni Agent Space può contenerne al massimo uno AGENTS.md peragent_type. Il contenuto del file deve essere markdown (text/markdown) e non deve superare i 25 KB.

attachment

Una attachment risorsa memorizza un file binario o di testo a cui l'agente può fare riferimento durante le indagini, ad esempio un diagramma di architettura, un PDF di runbook o un file di registro di esempio.

Proprietà richieste: metadata

  • filename (string) — Il nome del file originale, incluso il nome di base e qualsiasi estensione (ad esempio,topology.png).

  • extension (string) — L'estensione del file senza il punto iniziale (ad esempio, pngpdf,csv).

  • size (number) — La dimensione del file in byte.

Esempiometadata:

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

Limiti: la dimensione totale di tutti gli allegati in un Agent Space non può superare i 10 GB.

custom_agent

Una custom_agent risorsa definisce una configurazione di agente specializzata con un set curato di strumenti e competenze. Utilizzate un agente personalizzato per adattare l'agente a uno specifico flusso di lavoro o a un set di funzionalità.

metadataProprietà richieste:

  • name (string) — Un identificatore univoco per l'agente personalizzato. Solo lettere minuscole, numeri e trattini, da 1 a 64 caratteri. Non deve iniziare o terminare con un trattino.

metadataProprietà opzionali:

  • strumenti (matrice di stringhe) — Gli identificatori dello strumento che l'agente personalizzato può utilizzare. Il valore predefinito è un elenco vuoto quando viene omesso.

  • skills (array di stringhe) — Gli identificatori di abilità caricati dall'agente personalizzato. Il valore predefinito è un elenco vuoto quando viene omesso.

metadataEsempio:

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

test_profile

Una test_profile risorsa memorizza una configurazione riutilizzabile per un'esecuzione di test di rilascio, incluso il tipo di test da eseguire e l'endpoint di destinazione.

Proprietà richieste: metadata

  • test_agent_type (string) — Il tipo di test eseguito da questo profilo. I valori validi sono releaseUiTesting e releaseApiTesting.

  • target_url (string) — L'URL a cui si rivolge l'esecuzione del test.

Proprietà opzionali: metadata

  • name (string) — Un identificatore leggibile dall'uomo per il profilo di test. Solo lettere minuscole, numeri e trattini, da 1 a 128 caratteri. Non deve iniziare o terminare con un trattino.

  • description (string) — Una descrizione di 1—1024 caratteri di ciò che copre il profilo di test.

  • test_personas (array di stringhe) — I personaggi da allenare durante l'esecuzione del test. I valori validi sono guest e authenticated.

  • api_spec (string) — Una specifica API per l'esecuzione del test. Rilevante per. releaseApiTesting

  • credentials_secret_arn (string) — L'ARN di un segreto di Secrets AWS Manager che contiene le credenziali per l'esecuzione del test.

metadataEsempio:

{ "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

Una feedback risorsa registra il feedback fornito dal cliente sull'esecuzione di un singolo agente. Utilizza le risorse di feedback per acquisire verdetti e note che le pipeline di valutazione a valle possono aggregare.

Proprietà richieste: metadata

  • agent_types (array di stringhe) — I tipi di agenti che hanno prodotto l'esecuzione. Deve contenere almeno un valore (ad esempio,). INCIDENT_TRIAGE

metadataProprietà opzionali:

  • execution_id (string) — L'esecuzione a cui è associato questo feedback. AttivaloCreateAsset; non può essere modificato da. UpdateAsset

Esempiometadata:

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

Contenuto della risorsa: file o zip

Ogni CreateAsset richiesta include un content oggetto che contiene i byte archiviati dalla risorsa. La forma di content dipende dal fatto che si stia caricando un singolo file o un pacchetto zip:

  • File di testo singolo: content.file.body.text contiene fino a 1,5 MB di UTF-8 testo. Usalo per competenze e AGENTS.md file semplici.

json { "content": { "file": { "path": "SKILL.md", "body": { "text": "# Skill\n\nInstructions go here." } } } }

  • File binario singolo: content.file.body.bytes contiene fino a 6 MB di contenuto binario con codifica Base64. Utilizzalo per allegati come immagini o PDF. Poiché il blob è annidato all'interno dell'contentunione, base64 codifica il file in anticipo e invia la richiesta con --cli-input-json (vedi Create a skill from a binary file per un esempio funzionante).

json { "content": { "file": { "path": "topology.png", "body": { "bytes": "<base64-encoded bytes>" } } } }

  • Pacchetto zip: content.zip.zipFile contiene un archivio zip con codifica base64 fino a 6 MB. Usalo per le competenze che includono SKILL.md più file aggiuntivi in una directory or. references/ assets/

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

Per aggiungere, sostituire o eliminare singoli file all'interno di una risorsa esistente senza caricare nuovamente l'intero pacchettoCreateAssetFile, UpdateAssetFile usa e. DeleteAssetFile

Gestire un'abilità dall'inizio alla fine

La procedura dettagliata che segue crea un'abilità in tre modi diversi (da un singolo file di testo, da un file binario e da un pacchetto zip), quindi esercita le operazioni di lettura, aggiornamento ed eliminazione. Sostituiscilo 8f6187a7-0388-4926-8217-3a0fe32f757c con il tuo Agent Space ID.

Crea un'abilità da un singolo file di testo

Questo è il percorso più semplice: un singolo SKILL.md file caricato in linea. Poiché il file caricato contiene esattamente un file di testo, è necessario fornire name e description inserire. 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 (Boto3):

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"]

Crea un'abilità da un file binario

Usa un caricamento binario quando il contenuto dell'abilità non è UTF-8 testo. L'esempio seguente carica un PDF pre-renderizzato come corpo dell'abilità. Poiché il corpo della richiesta contiene un blob con codifica base64 annidato all'interno content dell'unione, fornisci la richiesta da un file JSON e codifica il blob in base64 in anticipo. --cli-input-json

Il -w 0 flag seguente dice base64 a GNU di emettere il blob codificato su una singola riga; senza di esso il line wrap predefinito di 76 caratteri inserisce nuove righe che producono JSON non valido quando il blob viene interpolato nell'heredoc. Su macOS, usa base64 -i ops-runbook.pdf (il BSD base64 non esegue il wapping per impostazione predefinita).

Crea il corpo della richiesta:

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 (Boto3):

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}, } }, )

Crea un'abilità da un pacchetto zip

Utilizza un caricamento in formato zip quando l'abilità include più di un file, ad esempio SKILL.md più materiale e risorse di riferimento. Per i caricamenti in formato zip, il servizio legge name e legge description dal SKILL.md frontespizio, quindi non includerli. metadata

Il layout zip ha il seguente aspetto:

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

SKILL.mddeve includere il frontespizio in modo che il servizio possa estrarre il nome e la descrizione:

--- 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 ...

Crea il corpo della richiesta:

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 (Boto3):

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}}, )

Importa un'abilità da un repository

Puoi creare un'abilità importandola direttamente da una directory del GitHub repository. AWS DevOps L'agente recupera il contenuto dell'abilità, estrae il nome e la descrizione dalla pagina principale e crea SKILL.md l'abilità nel tuo Agent Space. Ciò consente di gestire le competenze relative al controllo delle versioni e di importarle o sincronizzarle a livello di codice.

Prerequisiti:

  • Il tuo Agent Space deve avere un GitHub account associato. Per informazioni, consulta Connessione GitHub.

  • La directory del repository deve contenere un SKILL.md file valido con frontmatter.

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 (Boto3):

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"]

Il servizio recupera il contenuto della directory, legge la SKILL.md parte introduttiva di e e importa tutti i file. name description Non includerli name o description metadata inserirli: vengono estratti automaticamente dal frontespizio.

Sincronizzazione di un'abilità importata:

Per recuperare le ultime modifiche dal repository, chiama UpdateAsset con: 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" } }, )

La sincronizzazione sostituisce interamente il contenuto delle abilità con lo stato corrente della directory del repository. I campi modificabili (stato, tipi di agente) vengono mantenuti.

Visualizzazione della fonte di importazione:

GetAssetrestituisce le informazioni di origine metadata.source per le competenze importate dal repository:

{ "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" } }

Vincoli:

  • Sono accettati solo gli GitHub URL. È possibile puntare a una directory contenente un SKILL.md (ad esempio,https://github.com/org/repo/tree/main/skills/my-skill), che importa l'intera directory, compresi i file di riferimento. Se SKILL.md si trova alla radice del repository, è anche possibile collegarsi direttamente al file (ad esempio,https://github.com/org/repo/blob/main/SKILL.md), che importa solo il SKILL.md.

  • La directory deve contenere un SKILL.md frontmatter valido.

  • La dimensione totale della directory non deve superare i 6 MB e contenere al massimo 100 file.

  • content.sourceUrlsi esclude a vicenda con content.file econtent.zip: non è possibile combinarli nella stessa richiesta.

  • Un aggiornamento dei soli metadati (senzacontent) preserva la fonte di importazione esistente e non viene recuperata nuovamente dal repository.

Ottieni, elenca, aggiorna ed elimina

GetAssetUtilizzatelo per recuperare una singola risorsa per ID:

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

Utilizzalo ListAssets per sfogliare ogni risorsa in un Agent Space:

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>

UpdateAssetUtilizzalo per modificare uno o più metadata campi senza caricare nuovamente il contenuto. Le chiavi omesse mantengono i valori esistenti:

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

Utilizzate ListAssetVersions per controllare la cronologia delle versioni di una risorsa. Ogni UpdateAssetFile chiamata UpdateAsset o chiamata riuscita fa avanzare il numero di versione della risorsa:

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

DeleteAssetUtilizzatelo per rimuovere la risorsa e tutti i relativi file:

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

Aggiungi un singolo file a un'abilità esistente

Se hai già creato un'abilità da un pacchetto zip e desideri aggiungere un nuovo file di riferimento, non è necessario caricare nuovamente l'intero pacchetto. Usa: 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." }'

Per sostituire il file esistente, utilizzare update-asset-file con gli stessi argomenti. Per rimuoverlo, usadelete-asset-file.

Attivazione e disattivazione delle abilità

Le abilità comportano uno stato di attivazione. metadata.status Le nuove abilità sono ACTIVE di default e vengono caricate dall'agente durante le indagini e la chat. Puoi disattivare un'abilità per interromperla dalla rotazione senza eliminarla, ad esempio mentre indaghi sul motivo per cui sta producendo risultati inaspettati, e riattivarla in un secondo momento.

Imposta lo stato iniziale di creazione includendo metadata.status nella richiesta: CreateAsset

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" } } }'

Disattiva un'abilità esistente conUpdateAsset. Poiché metadata viene applicato come aggiornamento parziale, l'invio status lascia intatti solo tutti gli altri campi:

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

Riattiva allo stesso modo, con: "status": "ACTIVE"

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

GetAssete includi ListAssets sempre le risorse correnti status nelle risorse metadata relative alle abilità, in modo da poter leggere lo stato di attivazione in tempo reale in qualsiasi momento.

Il status campo fa distinzione tra maiuscole e minuscole. Sono ACTIVE accettate solo le INACTIVE lettere e (maiuscole). Qualsiasi altro valore fallisce con un. ValidationException L'attivazione si applica solo alle abilità; l'impostazione metadata.status su qualsiasi altro tipo di risorsa non ha effetto e il campo viene eliminato dalla risposta.

Esempi per gli altri tipi di risorse

La procedura dettagliata di competenza riportata sopra si applica a tutti gli altri tipi di asset. L'unica differenza è il metadata blocco e, per gli allegati, la scelta del contenuto binario. Le CreateAsset chiamate minime riportate di seguito illustrano ogni tipo.

Crea un 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." } } }'

Crea un allegato (contenuto binario; crea la richiesta da un file JSON come mostrato in Creare una competenza da un file binario):

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

Crea un agente personalizzato:

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." } } }'

Crea un profilo di test:

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" } } }'

Crea una risorsa di feedback:

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\"}" } } }'

Elenca i tipi di risorse supportati:

aws devops-agent list-asset-types