Lambda işlevinden döndürülen bir değeri kullanmaya çalışıyorum. CloudFormation özel kaynakları; Ancak, denediğimde CloudFormation Özel kaynağı bekleme durumunda kalacaktır.AWS CloudFormation özel lambda işlevi oluşturulduğunda sıkışmış
CloudFormation komut aşağıdaki Lambda Düğümü ben çalışıyorum kodu ve
exports.handler = function(event, context) {
var date = new Date();
var current_hour = date.getHours();
console.log("START :: " + current_hour);
console.log("END :: " + current_hour);
data = {
"val1" : "val1",
"val2" : "val2"
};
result = {
"Status" : "SUCCESS",
"Reason" : "Success Reason",
"PhysicalResourceId" : "LambdaCustomDelayFunction",
"StackId" : event.StackId,
"RequestId" : event.RequestId,
"LogicalResourceId" : event.LogicalResourceId,
"Data" : data
};
console.log('---Event---');
console.log(event);
console.log('---Context---');
console.log(context);
console.log('---Result---');
console.log(result);
context.done(null, result);
};
, ben
"DelayFunction" : {
"Type" : "Custom::Delayer",
"Properties" : {
"ServiceToken" : "arn:aws:lambda:us-east-1-123456778:function:delayfunction"
}
},
"MySG": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": " Server SG 1",
"VpcId": {
"Ref": "VPC"
},
"SecurityGroupIngress": [
{
"IpProtocol": "-1",
"CidrIp": "10.0.0.0/16"
}
],
"SecurityGroupEgress": [
{
"IpProtocol": "-1",
"CidrIp": "0.0.0.0/0"
}
],
"Tags": [
{
"Key": "Name",
"Value": "SG 1"
},
{"Key":"Lambda", "Value":{ "Fn::GetAtt" : ["DelayFunction", "val1"]}} <------ Trying to retrieve the value
]
}
}
Bir lambda içinde cfn yanıtı hakkındaki yorumlarınız kafa karıştırıcı. Modeli lambda koduma göre ekleyebilir. Kopyalama ve yapıştırmadaki nokta nedir? – stevepkr84
Örnek kodda, 'ServiceToken' özelliği varolan bir ARN'ye işaret eder (' arn: aws: lambda: * '); bu, Lambda işlevinin bir' AWS :: Lambda: Function' kaynak aracılığıyla değil, ancak diğer bazı araçlar. "Cfn-response" modülü sadece CloudFormation kaynağının "ZipFile" özelliğini kullanırken sağlanır (CloudFormation kaynak uygulamasının bir parçasıdır). Modül otomatik olarak mevcut olmadığı için, cfn-response.js modülü kaynak kodunu zip dosyasına ekleyerek ya da mevcut işleve doğrudan girerek kendisini sağlaması gerekir. – wjordan