我正在尝试在浏览器中使用AWS StepFunctions API(角度,使用AWS JavaScript API)。 使用此代码:
OPTIONS https://states.eu-west-1.amazonaws.com/ 404 (Not Found)
Failed to load https://states.eu-west-1.amazonaws.com/: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
浏览器出现错误:
int findKthLargest(vector<int> vec, int k)
{
// build min-heap
make_heap(vec.begin(), vec.end(), greater<int>());
for (int i = 0; i < k - 1; i++) {
vec.pop_back();
}
return vec.back();
}
这是否意味着尚未准备在浏览器端使用AWS StepFunctions? 如果属实,则在AWS文档中的何处进行记录?
答案 0 :(得分:1)
CORS 支持已于 2021 年 5 月添加到 AWS Step Functions。
所以现在可以使用 @aws-sdk/client-sfn
,这是一个非常基本的 TypeScript 代码:
import { SFNClient, DescribeStateMachineForExecutionCommand } from '@aws-sdk/client-sfn';
const region = 'us-east-1';
const config = {
region,
credentials: {
accessKeyId: 'xxxx', // your temporary cred,
secretAccessKey: 'xxxxx', // your temporary cred,
},
};
const client = new SFNClient(config);
async function getDataByExecutionArn(arn: string, onChunkRead: any) {
const command = new DescribeStateMachineForExecutionCommand({ executionArn: arn });
return await client.send(command);
}
export default getDataByExecutionArn;
请确保不要将这些凭据放在浏览器中运行的 Javascript 中。
答案 1 :(得分:0)
当试图区分标准Javascript SDK和浏览器Javascript SDK时,文档很难理解。
根据问题的推测,实际上无法通过浏览器使用StepFunction。
这是github问题评论中的官方声明:
AWS Step Functions服务不支持通过CORS进行访问 请求,因此无法在浏览器中使用。
https://github.com/aws/aws-sdk-js/issues/1334#issuecomment-276215833
也许,如果Browser SDK未直接链接到标准API参考,就不会造成太多混乱。