AWS Step Funzioni locali è uno strumento utile per testare i flussi di lavoro senza distribuirli nel cloud. Consente agli sviluppatori di eseguire macchine statali a livello locale utilizzando Docker, consentendo un’iterazione e debug più veloci.
Tuttavia, durante il take a look at della nostra funzione di passo a livello locale, abbiamo riscontrato limiti significativi, in particolare quando abbiamo cercato di deridere un http:endpoint
compito.
Problema: attività HTTP che derisse non supportate nelle funzioni di passo locale
Durante i nostri take a look at locali, abbiamo deriso con successo vari servizi AWS, come advert esempio:
- AWS Lambda
- Attività di esecuzione parallela
- Stati di scelta
Tuttavia, quando si tenta di deridere un http:endpoint
Attività, abbiamo riscontrato il seguente errore:
{
"Sort": "ExecutionFailed",
"PreviousEventId": 7,
"ExecutionFailedEventDetails": {
"Error": "States.Runtime",
"Trigger": "An error occurred whereas scheduling the state 'Create ******'. The supplied ARN 'arn:aws:states:us-east-1:123456789012:http:invoke' is invalid. Please discuss with Integrating optimized providers with Step Capabilities - AWS Step Capabilities for legitimate service ARNs."
}
}
Questo errore indica che il passaggio AWS funziona locale non supporta http:endpoint
compiti, nonostante siano in grado di deridere altri servizi integrati da AWS.
Risposta di supporto AWS
Abbiamo raggiunto il supporto AWS riguardo a questa limitazione e hanno confermato che:
- Funzioni di passaggio Locale è obsoleto e non supporta pienamente tutte le funzionalità disponibili nel cloud.
- La funzione Process HTTP non è supportata nell’attuale versione locale.
- AWS non ha una sequenza temporale specifica per quando una nuova versione supporterà questa funzione.
- AWS raccomanda di utilizzare l’API dello stato di prova per le macchine dello stato di take a look at e gli stati di attività HTTP invece di fare affidamento sulle funzioni di passo locale.
Altri servizi non supportati nelle funzioni di passo locale
Se stai facendo affidamento sulle funzioni di passo locale per i take a look at, tieni presente che diversi servizi AWS potrebbero non essere pienamente supportati o modellabili. Alcuni di questi includono:
- Endpoint HTTP (
http:endpoint
compito) - Flussi DynamoDB
- Alcune integrazioni AWS SDK
- Eventbridge e SNS in alcuni scenari
Approcci alternativi
Date queste limitazioni, ecco alcune strategie different per il take a look at delle funzioni del passo AWS:
1. Usa API AWS Check State
AWS ha recentemente introdotto l’API dello stato di prova, che consente di testare i singoli stati all’interno di una macchina a stato. Esempio 3 in La documentazione ufficiale AWS Fornisce una guida sul take a look at degli stati di attività HTTP.
2. Distribuire su un account Sandbox AWS
Se è necessario testare l’esecuzione della funzione a fase completa, prendi in considerazione la distribuzione su un account Sandbox AWS dedicato. Ciò garantisce che tutti i servizi siano disponibili mantenendo bassi i costi.
3. Usa i mock AWS locali (ove applicabile)
Per servizi come lambda, S3 e DynamoDBpuoi usare:
- Locale Per simulare i servizi AWS
- Moto (per Python) o AWS SDK Dompioni (per JavaScript) per deridere le risposte API
Pensieri finali
Sebbene AWS Step funzioni locali è utile per i take a look at di base, non supporta pienamente tutti i servizi AWS e le integrazioni. Se il tuo flusso di lavoro si basa su http:endpoint
o altri servizi non supportati, potrebbe essere necessario utilizzare l’API dello stato di prova, distribuire in AWS per i take a look at o esplorare strategie di derisione different.
Hai affrontato limiti simili durante il take a look at del passo AWS funzioni a livello locale? Facci sapere nei commenti!