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à.
Utilizzo dell'API AMS in CLI, Ruby, Python e Java
Di seguito è riportato un elenco di frammenti di codice per il ListChangeTypeClassificationSummaries funzionamento dell'API AMS, in tutte le lingue disponibili.
Per Python, Ruby e Java SDKs, consulta Tools for Amazon Web Services
Esempio da API AMS a CLI
Dopo aver installato l'AMS CLI (richiede la AWS CLI; vediInstallazione o aggiornamento della CLI AMS), puoi eseguire qualsiasi operazione API AMS riformando la chiamata specificando prima quale API AMSaws amsskms, aws amscm oppure eseguendo l'azione con trattini che sostituiscono camel case. Infine, fornisci credenziali, come SAML.
Per ulteriori informazioni, consulta Utilizzo dell'interfaccia a riga di AWS comando.
Esempio:
API:
'ChangeTypeClassificationSummaries[].[Category,Subcategory,Item,Operation,ChangeTypeId]'CLI:
amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
Nota
Se esegui l'autenticazione con SAML, aggiungi aws --profile saml all'inizio del comando. Ad esempio,
aws --profile saml amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
Esempio da API AMS a Python
Per utilizzare l'API AMS con Python, installa la CLI AMS e installa boto3. Completare la procedura riportata di seguito.
Installa l'AMS CLI. Per informazioni, consulta Installazione o aggiornamento della CLI AMS.
Installa boto3, l' AWS SDK per Python. Per ulteriori informazioni, consulta questo post sul blog Now Available — AWS SDK For Python (
Boto3). import boto3Scarica il client AMS Change Management:
cm = boto3.client('amscm')Ottieni l'AMS CTs:
cts = cm.list_change_type_classification_summaries()print(cts)
Esempi di Python
Di seguito sono riportati alcuni esempi di utilizzo di Python in AMS, per creare EC2 istanze, utilizzare and/or Lambda.
Esempio in Python per creare un EC2
Questo esempio mostra come utilizzare l' RESTFul API amscm dall'interno del codice Python per archiviare ed eseguire processi RFC.
Installa l'AMS CLI da qualche parte a cui hai accesso; ti servono i file che fornisce.
Chiama le librerie Python e crea l' EC2 istanza:
import boto3 import json import time # Create the amscm client cm = boto3.client('amscm') # Define the execution parameters for EC2 Create AMSExecParams = { "Description": "EC2-Create", "VpcId": "VPC_ID", "Name": "My-EC2", "TimeoutInMinutes": 60, "Parameters": { "InstanceAmiId": "INSTANCE_ID", "InstanceSubnetId": "SUBNET_ID"} } # Create the AMS RFC cts = cm.create_rfc( ChangeTypeId="ct-14027q0sjyt1h", ChangeTypeVersion="3.0", Title="Python Code RFC Create", ExecutionParameters=json.dumps(AMSExecParams) ) # Extract the RFC ID from the response NewRfcID = cts['RfcId'] # Submit the RFC RFC_Submit_Return=cm.submit_rfc(RfcId=NewRfcID) # Check the RFC status every 30 seconds RFC_Status = cm.get_rfc(RfcId=NewRfcID) RFC_Status_Code = RFC_Status['Rfc']['Status']['Name'] while RFC_Status_Code != "Success": if RFC_Status_Code == "PendingApproval": print(RFC_Status_Code) time.sleep(30) elif RFC_Status_Code == "InProgress": print(RFC_Status_Code) time.sleep(30) elif RFC_Status_Code == "Failure": print(RFC_Status_Code) break else: print(RFC_Status_Code) RFC_Status = cm.get_rfc(RfcId=NewRfcID) RFC_Status_Code = RFC_Status['Rfc']['Status']['Name']
Esempio di Python con Lambda
Questo esempio mostra come raggruppare i modelli AMS con il codice in modo da poterlo utilizzare con Lambda, EC2 ovvero luoghi che non si possono o non possono installare. amscli
Nota
AMS non fornisce un SDK Python specifico per AMS importabile. Lo script di installazione amscli installa i modelli di dati del servizio AMS nel percorso normale della CLI. Per l'utilizzo della CLI e l'utilizzo del sistema Python, va bene, perché entrambi boto3 leggono awscli i propri modelli di servizio dalle stesse posizioni predefinite (). ~/.aws/models Tuttavia, quando desideri utilizzare i servizi AMS tramite boto3 in Lambda (o qualsiasi altro runtime non locale), si interrompe, perché non hai più i modelli di dati. Di seguito è riportato un metodo per risolvere questo problema impacchettando i modelli di dati con la funzione.
È possibile eseguire alcuni semplici passaggi per eseguire il codice Python integrato con AMS in Lambda o in un altro runtime come Fargate, ecc. EC2 Il seguente flusso di lavoro mostra i passaggi necessari per le funzioni Lambda integrate in AMS.
Aggiungendo i modelli di dati al pacchetto di distribuzione del codice e aggiornando il percorso di ricerca dell'SDK, puoi simulare un'esperienza SDK.
Importante
Questo esempio e tutti i comandi non Python mostrati sono stati testati su un computer Mac.
Esempio di flusso di lavoro:
Installa
amscli. Questo crea una cartella~/.aws/modelssul tuo computer (Mac).Copia i modelli in una directory locale:
cp ~/.aws/models ./models.Includi i modelli nel pacchetto di distribuzione del codice.
Aggiorna il codice della funzione per aggiungere i nuovi modelli al percorso SDK. Nota che questo codice deve essere eseguito prima che boto3 o botocore vengano importati!
# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
Nota
Poiché i modelli di esempio si trovano in una directory denominatamodels, li aggiungiamo a _PATH. ./models AWS_DATA Se la directory avesse un nome/ams/boto3models, aggiungeremmo il seguente codice:
import os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore
Il tuo codice dovrebbe trovare correttamente i modelli AMS. Come esempio più specifico relativo al packaging, ecco il flusso di lavoro specifico per Lambda.
Esempio di flusso di lavoro AMS Lambda:
Questi passaggi applicano l'esempio generico precedente alla creazione di una funzione AWS Lambda.
Installa amscli. Questo crea una cartella
~/.aws/modelssul tuo computer (Mac).Copia i modelli in una directory locale:
cp ~/.aws/models ./modelsAggiungi i modelli al file zip di distribuzione della tua funzione:
zip -r9 function.zip ./models
Importante
Aggiorna il codice della funzione per aggiungere i nuovi modelli al percorso SDK. Nota che questo codice deve essere eseguito prima che boto3 o botocore vengano importati!
# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
Nota
Poiché i modelli di esempio si trovano in una directory denominatamodels, li aggiungiamo a _PATH. ./models AWS_DATA Se la directory avesse un nome/ams/boto3models, aggiungeremmo il seguente codice:
import os os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore
Ora, implementa la tua funzione:
Aggiungi il codice della funzione al file zip di distribuzione (se non l'hai già fatto):
zip -g function.zip lambda-amscm-test.pyCrea o aggiorna la tua funzione con il file zip che hai creato (console o CLI):
aws lambda update-function-code --function-name lambda-amscm-test --zip-file fileb://function.zip --region us-east-1
La tua Python Lambda integrata con AMS dovrebbe ora funzionare.
Nota
La tua funzione deve disporre delle autorizzazioni IAM per amscm altrimenti riceverai un errore di autorizzazione.
Esempio di codice della funzione Lambda per testare amscm (contenuto di .py): lambda-amscm-test
import json # Force lambda to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore def lambda_handler(event, context): use_session = boto3.session.Session(region_name="us-east-1") try: cm = use_session.client("amscm") cts = cm.list_change_type_categories() print(cts) except botocore.exceptions.UnknownServiceError: print("amscm not found") return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }
Risultati del test (successo):
Risposta della funzione:
{ "statusCode": 200, "body": "\"Hello from Lambda!\"" } Request ID: "1cea13c0-ed46-43b1-b102-a8ea28529c27"
Registri delle funzioni:
START RequestId: 1cea13c0-ed46-43b1-b102-a8ea28529c27 Version: $LATEST {'ChangeTypeCategories': ['Deployment', 'Internal Infrastructure Management', 'Management'], 'ResponseMetadata': {'RequestId': 'e27276a0-e081-408d-bcc2-10cf0aa19ece', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'e27276a0-e081-408d-bcc2-10cf0aa19ece', 'content-type': 'application/x-amz-json-1.1', 'content-length': '89', 'date': 'Sun, 10 May 2020 23:21:19 GMT'}, 'RetryAttempts': 0}} END RequestId: 1cea13c0-ed46-43b1-b102-a8ea28529c27
Esempio da API AMS a Ruby
Per utilizzare l'API AMS con Ruby, installa AWS Ruby SDK e AMS CLI. Completare la procedura riportata di seguito.
Installa l'AMS CLI. Per informazioni, consulta Installazione o aggiornamento della CLI AMS.
Installa AWS Ruby SDK. Vedi Strumenti per Amazon Web Services
. Configura Ruby con questi comandi:
require 'aws-sdk'config = {region: 'us-east-1',credentials: Aws::Credentials.new('ACCESS_KEY','SECRET_KEY')}-
Ottieni l'AMS CTs:
ams_cm = Aws::amscm::Client.new(config)cts = ams_cm.list_change_type_classification_summariesprint(cts)
Esempio da API AMS a Java
Per utilizzare l'API AMS con Java, installa AWS Java SDK e AMS CLI. Completare la procedura riportata di seguito.
Installa l'AMS CLI. Per informazioni, consulta Installazione o aggiornamento della CLI AMS.
Installa l'SDK AWS Java. Vedi Strumenti per Amazon Web Services
. Configura Java con questi comandi:
import com.amazonaws.auth.BasicAWSCredentials;import com.amazonaws.services.amscm.model.AWSManagedServicesCMClient;import com.amazonaws.services.amscm.model.ListChangeTypeClassificationSummariesRequest;import com.amazonaws.services.amscm.model.ListChangeTypeClassificationSummariesResult;public static void getChangeTypeClassificationSummaries() {Imposta le credenziali. Ti consigliamo di non codificarlo come codice fisso.
final BasicAWSCredentials awsCredsCm =new BasicAWSCredentials("ACCESS_KEY", "SECRET_KEY");Crea il client AMS Change Management:
final AWSManagedServicesCMClient cmClient =new AWSManagedServicesCMClient(awsCredsCm);-
Ottieni l'AMS CTs:
final ListChangeTypeClassificationSummariesRequest listCtsRequest = new ListChangeTypeClassification SummariesRequest();final ListChangeTypeClassificationSummariesResult listCtsResult =cmClient.listChangeTypeClassificationSummaries(listCtsRequest);System.out.println("List of CTs");listCtsResult.getChangeTypeClassificationSummaries().stream().map(x -> x.getCategory() + "/" + x.getSubcategory() + "/" + x.getItem() + "/" + x.getOperation()).forEach(System.out::println);}